xz -d mysql-8.0.19-linux-glibc2.12-x86_64.tar.xz
tar xvf mysql-8.0.19-linux-glibc2.12-x86_64.tar
2. 卸载系统自带的mysql
rpm -qa |grep mysql
如果系统有,删除:rpm -e --nodeps mysql-libs-5.1.71-1.el6.x86_64
3. 下载的文件移动至Linux服务器目录下,解压
mkdir /usr/local/mysql
mkdir /usr/local/data
## tar zxvf mysql-8.0.11-linux-glibc2.12-x86_64.tar.gz -C /usr/local/mysql/
创建mysql用户组和mysql用户,并使mysql是目录/usr/local/mysql的拥有者
groupadd mysql
useradd -r -g mysql mysql
cp -r mysql-8.0.19-linux-glibc2.12-x86_64/* /usr/local/mysql/
chown -R mysql:mysql /usr/local/mysql
4. 初始化数据库,生成root@localhost和密码,把密码记下
/usr/local/mysql/bin/mysqld --initialize --user=mysql --basedir=/usr/local/mysql/ --datadir=/usr/local/mysql/data/
5. 启动mysql服务,检查服务是否启动成功
/usr/local/mysql/bin/mysqld_safe --user=mysql & //启动
ps -ef |grep mysql //查看mysql服务进程
6. 修改密码及远程登陆
/usr/local/mysql/bin/mysql -u root -p
输入刚刚生成的临时密码
use mysql;
ALTER USER'root'@'localhost' IDENTIFIED BY '123456'; //修改密码
update user sethost='%' where user ='root'; //允许远程访问
解决Navicat 连接报 1251 错误
出现这个原因是mysql8 之前的版本中加密规则是mysql_native_password,而在mysql8之后,加密规则是caching_sha2_password, 解决问题方法 有两种,一种是升级navicat驱动,一种是把mysql用户登录密码加密规则还原成mysql_native_password.
ALTER USER'root' IDENTIFIED BY 'password' PASSWORD EXPIRE NEVER;
或者 ALTER USER'root'@'%' IDENTIFIED BY 'password' PASSWORD EXPIRE NEVER;
//修改加密规则
ALTER USER'root' IDENTIFIED WITH mysql_native_password BY '123456';
或者 ALTER USER'root'@'%' IDENTIFIED WITH mysql_native_password BY '123456';
//更新一下用户的密码
FLUSH PRIVILEGES;#刷新权限7. 将mysql服务加到系统服务中
cp -a /usr/local/mysql/support-files/mysql.server /etc/rc.d/init.d/mysqld
chmod +x /etc/rc.d/init.d/mysqld
chkconfig --add mysqld
检查是否生效
chkconfig --list mysqld
以后就可以使用service命令控制mysql的启动和停止,命令为:
service mysqld start和service mysqld stop
8. 配置环境变量
vi /etc/profile //最后添加
PATH=/usr/local/mysql/bin:/usr/local/mysql/lib:$PATH --配置需谨慎
source /etc/profile //立即生效
https://blog.csdn.net/qq_42909551/article/details/81710302
mysql加密规则8.0 和navicate不一样需要修改对应的用户的加密规则
create user 'test_cxm'@'%' identified with mysql_native_password by 'test1234';
alter user 'test'@'%' identified with mysql_native_password by 'test1234';
grant all privileges on *.* to 'test_cxm'@'%';