Centos7安装mysql8

Linux安装最新版mysql8的时候,发现网上很多博客都是有一些小坑的。虽然是一些小坑,但是找起来也是很费时间的。特此安装完赶紧记录下来
用到的软件版本

linux系统: 腾讯云上的CentOS 7.5 64位
mysql: 至此最新版8.0.19

mysql下载

若是没用网速快的yum源的话,个人推荐还是Windows上下载好了传到Linux系统里去(传送软件:WinSCP)(虚拟机不需要)
下载链接

mysql官网.png

32位选择第一个,64位选择第二个。下载下来的文件后缀是.tar.xz(就需要先将包解压成tar包再解压)
用WinSCP将文件传到服务器上之后解压

xz -d mysql-8.0.19-linux-glibc2.12-i686.tar.xz 
tar xvf mysql-8.0.19-linux-glibc2.12-i686.tar

1.移动压缩包到usr/local目录下,并重命名文件

mv /root/mysql-8.0.11-linux-glibc2.12-i686  /usr/local/mysql

2.在MySQL根目录下新建一个文件夹data,用于存放数据

mkdir data

3.创建mysql用户组和mysql用户

groupadd mysql
useradd -g mysql mysql

4.改变 mysql 目录权限

chown -R mysql.mysql /usr/local/mysql/

5.初始化数据库
创建mysql_install_db安装文件

mkdir mysql_install_db

chmod 777 ./mysql_install_db

自动生成密码的初始化方式

bin/mysqld --initialize --user=mysql --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data

注意控制台会输出你的临时密码(下图是控制台输出,最好把密码复制出来存一下)

[Server] A temporary password is generated for root@localhost: QbeaABh>u82c

如果报错./mysqld: error while loading shared libraries: libnuma.so.1: cannot open shared object file: No such file or directory就是没用安装libnuma,
安装libnma命令

yum install libnuma
yum -y install  numactl
yum install libaio1 libaio-dev 

6.mysql配置
拷贝文件

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

修改my.cnf文件 vim /etc/my.cnf 内容如下 :(vim操作:esc保存 wq 退出)

[mysqld]
    basedir = /usr/local/mysql   
    datadir = /usr/local/mysql/data
    socket = /usr/local/mysql/mysql.sock
    character-set-server=utf8
    port = 3306
   sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES
 [client]
   socket = /usr/local/mysql/mysql.sock
   default-character-set=utf8

7.建立MySQL服务

cp mysql.server /etc/init.d/mysql //将启动脚本放到开机初始化目录
chmod +x /etc/init.d/mysql //设置权限

添加到系统服务

chkconfig --add mysql

8.配置全局环境变量
编辑 / etc/profile 文件,vim /etc/profile
在文件最下面添加

export PATH=$PATH:/usr/local/mysql/bin:/usr/local/mysql/lib
export PATH

设置环境变量立即生效

 source /etc/profile

9.启动MySQL服务

service mysql start

登录mysql及修改密码 (远程登录mysql的话,记得把localhost换成@)

mysql -uroot -p密码 //登录,密码是前面存的临时密码
SET PASSWORD FOR 'root'@localhost=PASSWORD('你的密码'); //修改密码

10.(!!!)Navicat连接mysql
当你mysql都安装好之后,开开心心准备去连接的时候,你会发现连接不上(纳尼!!!),错误如下

image.png

原因就是:mysql8 之前的版本中加密规则是mysql_native_password,而在mysql8之后,加密规则是caching_sha2_password
更改加密规则就好了

mysql -uroot -p  password #登录

use mysql; #选择数据库
# 远程连接请将'localhost'换成'%'

ALTER USER 'root'@'localhost' IDENTIFIED BY '你的密码' PASSWORD EXPIRE NEVER; #更改加密方式

ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '你的密码'; #更新用户密码

FLUSH PRIVILEGES; #刷新权限

接下来就ok啦
image.png

亲测成功,如有不正,欢迎指正

你可能感兴趣的:(Centos7安装mysql8)