Centos7中MySQL8.0安装过程及遇到的问题记录

本文主要参考如下2篇文章,安装操做html

https://www.miboxapp.com/article/detail/1146659339214393344node

http://www.javashuo.com/article/p-qspumkfi-k.htmlmysql

 

一、下载MySQL安装包:下载地址:https://dev.mysql.com/downloads/mysql/linux

Select Operating System: 选择 Red Hat ,CentOS 是基于红帽的,Select OS Version: 选择 linux 7sql

 

二、选择 RPM Bundle 点击 Download,下载时须要登陆Oracle帐号shell

 

三、下载好后的安装包数据库

 

四、登陆linux服务器,具体过程就不写了,我用的是Xshell.centos

 

五、经过 rpm -qa | grep mariadb 命令查看 mariadb 的安装包(centos7默认安装了mariadb,须要卸载掉)服务器

 

六、经过 rpm -e mariadb-libs-5.5.65-2.el7.x86_64 --nodeps 命令装卸 mariadbapp

 

七、经过 rpm -qa | grep mariadb 命令再次查看 mariadb 的安装包

 

八、经过 cd /usr/local/ 命令进入根目录下的usr目录下的local目录,这个目录是放一些本地的共享资源的

 

(截图非本机,本身操做时忘截图了)

九、经过 ll 命令查看一下当前目录下的目录结构

 

(截图非本机)

十、经过 mkdir mysql 命令 在当前目录下建立一个名为 mysql 的目录

 

(截图非本机)

十一、经过 ll 命令查看一下当前目录下的目录结构,刚建立的 mysql 目录有了

 

(截图非本机)

十二、经过 cd mysql 命令进入 mysql 目录

 

(截图非本机)

1三、经过FTP工具将MySQL的安装包上传到该目录(图中使用的是WinSCP)

 

1四、在Xshell中经过 ll 命令查看一下当前目录下的目录结构

 

(截图非本机)

1五、经过 tar -xvf mysql-8.0.21-1.el7.x86_64.rpm-bundle.tar  命令解压 tar 包

 

(截图非本机,截图中的是mysql8.0.11)

1六、经过 rpm -ivh mysql-community-common-8.0.21-1.el7.x86_64.rpm --nodeps --force 命令安装 common

 

(截图非本机)

1七、如上按顺序安装如下安装包

经过 rpm -ivh mysql-community-libs-8.0.21-1.el7.x86_64.rpm --nodeps --force 命令安装 libs

经过 rpm -ivh mysql-community-client-8.0.21-1.el7.x86_64.rpm --nodeps --force 命令安装 client

经过 rpm -ivh mysql-community-server-8.0.21-1.el7.x86_64.rpm --nodeps --force 命令安装 server

 

1八、经过 rpm -qa | grep mysql 命令查看 mysql 的安装包

 

1九、经过如下命令,完成对 mysql 数据库的初始化和相关配置

(此处有个坑,下面第28步 mysql8.0设置不区分大小,必须在数据库初始化时操做)

mysqld --initialize;

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

systemctl start mysqld.service;

systemctl enable mysqld;

——————

运行命令:mysqld --initialize; 报错

 

解决措施

安装libaio

运行命令:yum install -y libaio

安装后再初始化mysql就能够了

——————

 

20、经过 cat /var/log/mysqld.log | grep password 命令查看数据库的密码

 

2一、经过 mysql -uroot -p 敲回车键进入数据库登录界面

(复制密码便可,另外密码输入后也不会显示)

 

(截图非本机)

2二、经过 ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY ‘123456'; 命令来修改密码

 

(截图非本机)

2三、经过 exit; 命令退出 MySQL,而后经过新密码再次登录

 

2四、建立用户

通常不会使用root登陆,需建立一个新的用户来使用mysql数据库;

建立用户命令

create user 'test'@'%' identified with mysql_native_password by '123456';

命令中的test为用户名,123456为登陆密码

 

(截图非本机)

2五、受权远程登陆

建立用户后需设置容许远程访问才可在外网连接MySQL数据库

需分别执行如下命令:

grant all privileges on *.* to 'test'@'%' with grant option;

flush privileges;

2六、执行成功后需开启3306端口,MySQL默认端口为3306,开启端口命令,需先退出MySQL

exit

firewall-cmd --zone=public --add-port=3306/tcp --permanent

systemctl restart firewalld.service

2七、开启成功后,用MySQL数据库的客户端远程连接测试

 

2八、设置数据库不区分大小写和字符集

执行以下命令

Vi /etc/my.cnf  进入配置文件

进入编辑模式后在最后加入

lower_case_table_names=1

default-character-set=utf8mb4

退出并保存(按ESC+:wq 保存退出),修改完成后需重启MySQL

Systemctl restart mysqld

 

我执行以上命令后报错,把配置文件最后2行注释后又可正常运行,问题还未解决

 

—报错问题跟踪—

 

关于字符集问题,status命令,看到mysql字符集已是“utf8mb4”

 

 

查看mysql日志 vi /var/log/mysqld.log

提示“unknown variable 'default-character-set=utf8mb4'”

查询处理方法以下

①是在MySQL的配置/etc/my.cnf中将default-character-set=utf8mb4 修改成 character-set-server = utf8mb4,可是这须要重启MySQL服务,若是你的MySQL服务正在忙,那这样的代价会比较大。

 

②是用mysqlbinlog --no-defaults mysql-bin.000001 命令执行

 

考虑到已经查询到mysql的字符集是utf8mb4,因此我没去调整

 

关于大小写问题,查询发现mysql8.0须要在初始化时配置lower_case_table_names=1

不然会报错。

https://blog.csdn.net/qq_24432795/article/details/103135455

 

 

http://www.javashuo.com/article/p-yfadbokd-nv.html

https://blog.csdn.net/weixin_42954381/article/details/100523640

我参照上述文档,删除mysql数据文件,从新设置

命令以下

service mysqld stop   //中止mysql服务

rm -rf /var/lib/mysql    //删除mysql文件夹全部数据

service mysql start   //重启mysql服务

 

重启mysql时报错,

 

 

因此从新初始化一遍数据库存

命令以下

mysqld --initialize;

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

systemctl start mysqld.service;

systemctl enable mysqld;

 

而后帐号等相关设置从新操做一遍

 

mysql中经过查询命令“show variables like '%lower_case%'” 大小写设置

 

博客原文:https://www.jzlnice.com/article/detail/1297056055938912256

相关文章
相关标签/搜索