准备mysql8的文件
tar -xf mysql-8.0.27-linux-glibc2.12-x86_64.tar
tar -xf mysql-8.0.27-linux-glibc2.12-x86_64.tar.xz
mv mysql-8.0.27-linux-glibc2.12-x86_64 mysql-8.0.27
修改/etc/my.cnf
cd /etc
cp my.cnf my.cnf.bak
vi my.cnf
my.cnf内容如下
[client]
port=3306
socket=/opt/mysql-8.0.27/socket/mysql.sock
[mysqld]
basedir=/opt/mysql-8.0.27
datadir=/opt/mysql-8.0.27/data
socket=/opt/mysql-8.0.27/socket/mysql.sock
symbolic-links=0
[mysqld_safe]
log-error=/opt/mysql-8.0.27/mariadb/mariadb.log
pid-file=/opt/mysql-8.0.27/mariadb/mariadb.pid
!includedir /etc/my.cnf.d
创建文件夹
mkdir /opt/mysql-8.0.27/data
mkdir /opt/mysql-8.0.27/socket
mkdir /opt/mysql-8.0.27/mariadb
创建用户组mysql ,创建用户mysql,并加入mysql组
groupadd mysql
useradd -g mysql mysql
修改对应的目录属于mysql:mysql
chown -R mysql:mysql /opt/mysql-8.0.27/data/
chown -R mysql:mysql /opt/mysql-8.0.27/socket/
chown -R mysql:mysql /opt/mysql-8.0.27/mariadb/
修改对应文件夹的执行权限
chmod -R 755 /opt/mysql-8.0.27/data/
chmod -R 755 /opt/mysql-8.0.27/socket/
chmod -R 755 /opt/mysql-8.0.27/mariadb/
创建空的日志文件 ,并修改属主
touch /opt/mysql-8.0.27/mariadb/mariadb.log
chown mysql:mysql /opt/mysql-8.0.27/mariadb/mariadb.log
初始化数据库
/opt/mysql-8.0.27/bin/mysqld --initialize --user=mysql --basedir=/opt/mysql-8.0.27/ --datadir=/opt/mysql-8.0.27/data/
产生一个临时的 root密码
启动服务
cd /opt/mysql-8.0.27/
cd support-files/
./mysql.server start
使用
cd /opt/mysql-8.0.27/bin
./mysql -u root -p
输入密码临时密码, 登录mysql
set password='123456';
select u.host, u.user, u.plugin from mysql.user u;
update mysql.user set host='%' where user='root';
alter user 'root'@'%' identified with mysql_native_password by '123456';
flush privileges;
select u.host, u.user, u.plugin from mysql.user u;
退出,重新连接 root的密码为 123456
exit
./mysql -u root -p
创建数据库 nlh,用户nlh ,设置密码
create user 'nlh'@'%' identified by 'NLHabc2008!';
create database nlh default character set = 'utf8' default collate = 'utf8_general_ci';
grant all privileges on nlh.* to 'nlh'@'%';
flush privileges;
exit
./mysql -h 172.17.9.105 -u nlh -p
IP用自己服务器的IP
密码: NLHabc2008!
MySQL8.0安装连接Navicat攻略
之前的版本中加密规则是mysql_native_password,而在mysql8之后,加密规则是caching_sha2_password,直接去连接Navicat会报错1251
解决问题方法有两种,一种是升级navicat驱动,一种是把mysql用户登录密码加密规则还原成mysql_native_password.
exit
./mysql -u root -p
ALTER USER 'nlh'@'%' IDENTIFIED BY 'NLHnlh2008!' PASSWORD EXPIRE NEVER;
ALTER USER 'nlh'@'%' IDENTIFIED WITH mysql_native_password BY 'NLHabc2008!';
ALTER USER 'nlh'@'%' IDENTIFIED WITH mysql_native_password BY 'NLHabc2008!';
flush privileges;
关闭防火墙 在操作系统下做
systemctl stop firewalld
navicate连接问题参考 https://blog.csdn.net/seventopalsy/article/details/80195246