1、 下载mysql安装包
MySQL :: Download MySQL Community Server
2. 解压
a、 xz -d mysql-8.0.26-linux-glibc2.12-x86_64.tar
这条命令要执行好久,要等好几分钟
b、 tar -xvf mysql-8.0.26-linux-glibc2.12-x86_64.tar
c、 mv mysql-8.0.26-linux-glibc2.12-x86_64 mysql
3、创建mysql用户组和用户并修改权限
groupadd mysql
useradd -r -g mysql mysql
4、创建数据目录并赋予权限
a、chown mysql:mysql -R /usr/local/mysql
b、chown mysql:mysql -R /usr/local/mysql_data
5、vi /etc/my.cnf
[mysqld]
bind-address=0.0.0.0
port=3306
user=mysql
basedir=/usr/local/mysql
datadir=/usr/local/mysql_data
socket=/tmp/mysql.sock
log-error=/usr/local/mysql_data/mysql.err
pid-file=/usr/local/mysql_data/mysql.pid
#character config
character_set_server=utf8mb4
symbolic-links=0
explicit_defaults_for_timestamp=true
6、初始化数据库
进入mysql的bin目录
a、cd /usr/local/mysql/bin/
初始化
b、 ./mysqld --defaults-file=/etc/my.cnf --basedir=/usr/local/mysql/ --datadir=/usr/local/mysql_data/ --user=mysql --initialize
执行./mysqld --initialize 后
c、 ./bin/mysqld: error while loading shared libraries: libaio.so.1: cannot open shared object file: No such file or directory
原因是没有安装libaio.so.1,安装即可。
Ubuntu下执行:
apt-get install libaio1 libaio-dev
Redhat/Fedora/CentOS下执行:
d、 yum install libaio
我们继续执行
e、 ./mysqld --defaults-file=/etc/my.cnf --basedir=/usr/local/mysql/ --datadir=/usr/local/mysql_data/ --user=mysql --initialize
f、 cp /usr/local/mysql/support-files/mysql.server /etc/init.d/mysqld
g、 vi /etc/init.d/mysqld
7、 启动mysql
a、 service mysqld start
b、 ps -ef|grep mysql
说明启动成功
输入 service mysqld status
查看 也是成功
8、查找初始密码
a、 cd /usr/local/mysql
查找 root的初始密码
b、 grep 'password' /usr/local/mysql_data/mysql.err
这里看到密码是 Ep:XrXikE8t(
是用密码登录/
c、 cd /usr/local/mysql/bin
d、 ./mysql -u root -p
直接修改密码
e、 alter user user() identified by "123456";
f、 flush privileges;
9、 mysql8.0 以上,修改mysql用户权限,开启所有ip可访问
a、 use mysql
b、 ALTER USER 'root'@'%' IDENTIFIED BY '123456';
c、 flush privileges;
10、开启mysql 防火墙
a、 firewall-cmd --zone=public --add-port=3306/tcp --permanent
开启后记得重新加载防火墙,sudo firewall-cmd --reload
11、使用navicat 连接
发现报错
client does not support authentication protocol requested by server;
原因是mysql8 之前的版本中加密规则是mysql_native_password,而在mysql8之后,加密规则是caching_sha2_password。并提供了两种解决方案
1.升级navicat,由于navicat是收费的,个人感觉升级会比较麻烦点。
2.把用户密码登录的加密规则还原成mysql_native_password这种加密方式
这里选择第二种
ALTER USER 'root'@'%' IDENTIFIED BY 'password' PASSWORD EXPIRE NEVER;这里的password是你正在使用的密码
ALTER USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY 'password';#更新一下用户的密码这里的password为你修改的新密码。
FLUSH PRIVILEGES; #刷新权限,使自己的修改生效。
12、重新把密码换成新的密码,输入连接测试成功。
13、 设置mysql开机启动
a、添加服务 chkconfig --add mysqld
b、显示服务列表 chkconfig --list
备注
安装mysql时要先去查看linux的glibc版本
rpm -qa | grep glibc ,发现这里是2.17所以下载就要下载mysql-8.2.0-linux-glibc2.17-x86_64.tar,不然会报错,报错就会出现
/lib64/libstdc++.so.6: version `CXXABI_1.3.11‘ not found等问题