Linux安装最新版mysql8的时候,发现网上很多博客都是有一些小坑的。虽然是一些小坑,但是找起来也是很费时间的。特此安装完赶紧记录下来
用到的软件版本
linux系统: | 腾讯云上的CentOS 7.5 64位 |
---|---|
mysql: | 至此最新版8.0.19 |
mysql下载
若是没用网速快的yum源的话,个人推荐还是Windows上下载好了传到Linux系统里去(传送软件:WinSCP)(虚拟机不需要)
下载链接
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都安装好之后,开开心心准备去连接的时候,你会发现连接不上(纳尼!!!),错误如下
原因就是: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啦
亲测成功,如有不正,欢迎指正