Centos7 离线安装 MySQL 8.0.32

1 官网下载mysql离线rpm包

下载地址:https://dev.mysql.com/downloads/mysql/

2 将下载的tar包上传到/opt/rpm/mysql目录

 

3 删除CentOS自带的mariadb

 说明:不删的话mysql会和mariadb冲突

rpm -qa|grep mariadb

rpm -e --nodeps mariadb-libs

4 在/opt/rpm/mysql目录解压tar包

cd /opt/rpm/mysql/
tar -xvf mysql-8.0.32-1.el7.x86_64.rpm-bundle.tar

5 安装离线rpm包

rpm -ivh *.rpm --force --nodeps

6 初始化数据库&授权mysql用户访问

6.1 更改数据存放路径

修改/etc/my.cnf里的datadir和socket

6.2 初始化

mysqld --initialize --console # 注意需要表名忽略大小写先看14.3 14.4
chown
-R mysql:mysql /var/lib/mysql/

7 启动mysql服务并设置开机自启

systemctl start mysqld
systemctl enable mysqld

8 查看临时密码

cat /var/log/mysqld.log

 

9 登录mysql客户端

mysql -u root -p

 

 粘贴密码回车

 

10 设置root用户的密码

alter USER 'root'@'localhost' IDENTIFIED BY 'Root@123456'; #需要包含大小写字母、数字、符号,我试了好多次才行- -

 

 11 授权root用户可以远程访问

show databases;

use mysql;
select host, user, authentication_string, plugin from user;

update user set host = "%" where user='root';
select host, user, authentication_string, plugin from user;

flush privileges; #刷新权限

 

12 用Navicat远程连接

 

 大功告成!

13 参考

https://www.cnblogs.com/quchunhui/p/11115339.html

 

14 忘记改表名忽略大小写(lower_case_table_names=1)怎么办

14.1 暂停mysql服务

systemctl stop mysqld

14.2 删掉mysql的目录

rm -rf /var/lib/mysql

14.3 编辑/etc/my.cnf文件

最后一行添加:lower_case_table_names=1

14.4 初始化数据库(读取my.cnf里的配置)

mysqld --initialize --console

14.5 重新给mysql用户授权

chown -R mysql:mysql /var/lib/mysql/

14.6 启动mysql服务

systemctl start mysqld

14.7 查看临时密码

cat /var/log/mysqld.log

14.8 登录mysql修改root密码,授权远程连接

alter USER 'root'@'localhost' IDENTIFIED BY 'Root@123456';
use mysql;
update user set host = "%" where user='root';
flush privileges;
show variables like '%lower_case_table_names%';

 

 终于改好了!下次应该在初始化的时候就修改/etc/my.cnf文件和参数--lower-case-table-names=1

posted @ 2023-03-08 16:29  NavyW  阅读(1837)  评论(0编辑  收藏  举报