CentOS安装MySQL5.7

1.下载MySQL5.7版本Linux版

提供我的版本,访问密码:m3l7,如有需要可以到MySQL官网自行下载

2.复制压缩包到linux服务器进行解压

1
tar -zxvf mysql-5.7.24-linux-glibc2.12-x86_64.tar.gz

3. 解压好后把MySQL移动到指定位置并重命名

1
mv mysql-5.7.24-linux-glibc2.12-x86_64 /usr/local/mysql //也可以先移动后重新起名,我这里一步到位了

4.创建MySQL用户组和用户并修改权限

1
2
groupadd mysql
useradd -r -g mysql mysql

5.创建数据目录并赋予权限

1
2
mkdir -p  /data/mysql              //创建目录
chown mysql:mysql -R /data/mysql //赋予权限

6.配置my.cnf文件

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
//这里是执行linux编辑文件代码
vim /etc/my.cnf

//这里是需要修改的文件内容
[mysqld]
bind-address=0.0.0.0
port=3306
user=mysql
basedir=/usr/local/mysql
datadir=/data/mysql
socket=/tmp/mysql.sock
log-error=/data/mysql/mysql.err
pid-file=/data/mysql/mysql.pid
#character config
character_set_server=utf8mb4
symbolic-links=0
explicit_defaults_for_timestamp=true
lower_case_table_names=1

7.初始化数据库

进入MySQL的bin目录下执行哦

1
cd /usr/local/mysql/bin/

8.初始化数据库

1
./mysqld --defaults-file=/etc/my.cnf --basedir=/usr/local/mysql/ --datadir=/data/mysql/ --user=mysql --initialize

在这里执行初始化的时候会报错,可能会缺少libaio.so.1文件,根据以下代码即可修复这个问题

1
2
1.  wget http://mirror.centos.org/centos/6/os/x86_64/Packages/libaio-0.3.107-10.el6.x86_64.rpm
2. rpm -ivh libaio-0.3.107-10.el6.x86_64.rpm

此时你再执行初始化数据库会报错,不要慌,那是因为你刚刚执行这个命令的时候在data目录下已经有日志了,先把这个目录下的文件清空,再重新执行即可成功!

9.查看MySQL密码

1
cat /data/mysql/mysql.err

执行此命令之后再文件的最后位置会有对应的密码,请一定牢记!!!
image
先将mysql.server放置到/etc/init.d/mysql中

1
cp /usr/local/mysql/support-files/mysql.server /etc/init.d/mysql

10.启动MySQL

1
2
3
service mysql start    // 启动mysql服务

ps -ef|grep mysql // 查看mysql启动进程

11.修改root密码

1
2
3
4
5
6
7
./mysql -u root -p   #bin目录下执行哦

===========================================================
登陆成功之后执行如下操作:
SET PASSWORD = PASSWORD('123456'); // 设置新的密码
ALTER USER 'root'@'localhost' PASSWORD EXPIRE NEVER;
FLUSH PRIVILEGES;

此时你的MySQL已经基本配置完成啦~

在这个过程中也会遇到登录失败的问题,解决方案如下:
  1. /etc/my.cnf文件中[mysqld]下添加如下代码,解决完问题删除此行配置重启mysql
    1
    skip grant tables
  2. 在mysql安装的bin目录下执行
    1
    ./mysql -u root -p
    此时即可不进行密码校验直接进入mysql,然后修改mysql用户的登录密码即可
    1
    2
    3
    UPDATE user SET password=PASSWORD( 'XXXX' )WHERE user='root';
    5.7及以上版本的话需要执行以下命令:
    update user set authentication_string=password('XXXX') where user='root';

12.配置MySQL可以远程访问

1
2
3
use mysql                                            #访问mysql库
update user set host = '%' where user = 'root'; #使root能再任何host访问
FLUSH PRIVILEGES; #刷新