Linux CentOS7.X-安装mysql5.7数据库(安装包tar.gz)
一、下载对应版本的mysql
1、官网下载压缩安装包。
进入到mysql官网下载自己对应版本的mysql,下载地址:https://dev.mysql.com/downloads/mysql/5.7.html#downloads,选择Linux的通用版本,64位,并且经过了压缩的安装包(说明:tar表示是安装包,非安装程序,gz表示是压缩过的安装包)。
我这里下载mysql-5.7.25-linux-glibc2.12-x86_64.tar.gz版本。
2、在Linux中通过命令下载。
二、环境配置
1、查看操作系统位数:getconf LONG_BIT;
2、查看系统是否已经安装mariaDB:rpm -qa|grep mariaDB
如果已经安装,则删除。mariaDB是mysql的一个分支,兼容mysql。
3、删除已经安装的mariaDB
三、安装mysql
1、解压mysql压缩安装包
- 解压安装包:tar -xzvf mysql-5.7.37-linux-glibc2.12-x86_64.tar.gz
xzvf参数的说明:
x:表示解压;
z:表示压缩方式;
v:显示解压过程;
f:表示后面接文件,必须。
- 修改解压后的文件夹名称:mv mysql-5.7.37-linux-glibc2.12-x86_64 mysql
- 移动解压出来的文件夹,改名后的mysql,移动到: /usr/local下
2、检查mysql组和用户是否存
cat /etc/group|grep mysql
cat /etc/password|grep mysql
3、不存在,则添加
添加用户组:groupadd mysql
添加用户:useradd -r -g mysql mysql
4、创建data目录
进入mysql目录,cd /usr/local/mysql
创建data目录,mkdir data
5、更改mysql用户组、用户、权限
为保障mysql用户有足够的权限,我们需要将mysql目录下所有目录及文件夹的所属用户组和用户给到mysql:mysql,并让mysql用户具有相应的权限
更改用户组及用户:chown -R mysql:mysql /usr/local/mysql
更改权限:chmod -R 755 /usr/local/mysql
小知识:777代表具体权限,使用cl l可查看权限,rwx是三种权限,分别对应421
6、编辑配置文件/etc/my.cnf
如果该目录下没有my.cnf文件,则可以新建一个同名文件,并进行编辑。
vim /etc/my.cnf
编辑内容如下:
[mysqld]
#character
character-set-server=utf8
collation-server=utf8_general_ci
datadir=/usr/local/mysql/data
port = 3306
sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES
symbolic-links=0
max_connections=600
innodb_file_per_table=1
lower_case_table_names=1
[mysqld_safe]
datadir=/usr/local/mysql/data
log-error=/usr/local/mysql/data/error.log
pid-file=/usr/local/mysql/data/mysql.pid
user=mysql
tmpdir=/tmp
7、初始化mysql
进入mysql的bin目录:cd /usr/local/mysql/bin
进行初始化: ./mysqld --initialize --user=mysql --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data
注意:必须要注意这里的初始密码,后面要用。如果此处初始化报错了,需要重新初始,可删除data目录,调整出问题的地方后,重新给相应的权限和更改用户、用户组,重新初始化。
8、测试启动mysql服务
/usr/local/mysql/support-files/mysql.server start
注意:启用时,可能报如下错误:Starting MySQL. ERROR! The server quit without updating PID file (/usr/local/mysql/data/localhost.localdomain.pid).
解决方法:编辑/etc/init.d/mysql,找到start模块,添加--user=root到mysqld_safe 即可(还可能是因为其他原因,大部分原因网上可查)。
9、添加软连接,并重启mysql服务
ln -s /usr/local/mysql/support-files/mysql.server /etc/init.d/mysql
ln -s /usr/local/mysql/bin/mysql /usr/bin/mysql
service mysql restart
10、登录mysql
使用初始密码登录系统,mysql -u root -p
11、修改密码、取消过期
查看user表信息:
use mysql;
desc user;
update user set authentication_string == password('用户密码'), password_expired='N' where user = 'root'
重启mysql服务。
注意:a.如果在重启服务的时候,提示Access denied for user ‘root’@‘localhost’(using password: YES)或者提示(You must reset your password using ALTER USER),则按照以下
关闭mysql服务,service mysql stop。可以通过service mysql statyus查看mysql服务的状态。
进入safe模式。进入mysql安装目录的bin目录, ./mysqld_safe --skip-grant-tables
另起一个客户端,使用root 账户无密码登陆,进行修改密码。
mysql -u root
use mysql;
使用sql语句,修改密码,并设置密码不过期(因为默认是过期的)。update user set authentication_string == password('用户密码'), password_expired='N' where user = 'root';
然后使用select authentication_string,password_expired from user where user='root';查看以下修改结果。
更新权限:flush privileges;
quit;退出
重启服务。(service mysql stop) (service mysql start)。这里如果无法启动服务,可以选择重启系统,再启动mysql服务。
最后使用修改后的新密码,重新连接数据库(mysql -u root -p)。
12、开放远程连接
use mysql;
update user set user.Host='%' where user.User='root';
flush privileges;
quit;
13、设置开机自动启动
将服务文件拷贝到init.d下,并重命名为mysql
cp /usr/local/mysql/support-files/mysql.server /etc/init.d/mysqld
赋予可执行权限
chmod +x /etc/init.d/mysqld
添加服务
chkconfig --add mysqld
显示服务列表
chkconfig --list