实战--Alibaba Cloud Linux 3 在线安装 mysql 8.0.21

一、整体思路

主要内容:使用dnf 在线安装

  1. 删除已有的mysql
  2. 使用dnf在线安装
    1. 确认本地是否有mysql的rpm包以及对应的版本信息
    2. 使用dnf命令安装
  3. 配置数据库参数
    1. 查找mysql的配置文件
    2. 修改my.cnf
  4. 启动数据库服务
  5. 初始化数据库
  6. 配置数据库的连接信息
    1. 创建用户
    2. 配置用户的权限
    3. 配置navicat客户端的远程连接

特别注意:

  1. 在启动数据库服务之前,一定要先配置my.cnf。有些参数配置,一旦第一次启动服务后,就无法再次配置了。比如 大小写敏感参数(lower_case_table_names)!!!

二、系统环境

# 查看系统版本
cat /etc/redhat-realse

![1637211341(1).png](https://www.icode9.com/i/ll/?i=img_convert/654d16c45d33b9aec636df6e37006d9f.png#clientId=u2c7b2728-c12a-4&from=paste&height=58&id=u1337f059&margin=[object Object]&name=1637211341(1).png&originHeight=51&originWidth=628&originalType=binary&ratio=1&size=4657&status=done&style=none&taskId=u6e5d2463-d540-402a-8940-99a38cf121b&width=709)

三、具体操作

1、检查并清除以前的mysql相关文件

提醒:这是很重要的工作,一定要不能略过。

  1. 查看并卸载mysql的安装包。
    1. 执行命令:dnf list installed | grep mysql 。或者使用对应的rpm命令。 如果有内容,则使用 dnf remove 包名 卸载。
    2. 执行命令:find / -name mysql 。如果有内容,则使用 rm -rf 文件路径  删除文件。

![1637216748(1).jpg](https://www.icode9.com/i/ll/?i=img_convert/856c1c81b23369aa44acaf90ef8a9da3.png#clientId=u2c7b2728-c12a-4&from=paste&height=80&id=qc2aT&margin=[object Object]&name=1637216748(1).jpg&originHeight=105&originWidth=912&originalType=binary&ratio=1&size=10473&status=done&style=none&taskId=u99889adc-fdb8-437e-900c-8ff6d4a8f6e&width=699)
![1637217900(1).png](https://www.icode9.com/i/ll/?i=img_convert/2e61862a5fcab92f2390a29f886371ca.png#clientId=u2c7b2728-c12a-4&from=paste&height=223&id=u53011989&margin=[object Object]&name=1637217900(1).png&originHeight=258&originWidth=810&originalType=binary&ratio=1&size=15736&status=done&style=none&taskId=ufb2df4cc-b6d1-416c-92da-06096dd3ee8&width=699)

拓展:

1. dnf list installed  表示查询所有安装过的rpm包 
2. grep mysql  表示使用正则表达式查询包含关键字mysql的内容
3. 分别开repository 和 package的关系。 rpm包包含在repository中,这也是 dnf repolist 和 dnf list 的区别
4. whereis、which、find、location的区别和用法  https://www.cnblogs.com/kex1n/p/5233821.html
5. rpm ,yum ,dnf 之间的区别和关系  https://www.ywnz.com/linux/6252.html 

2、使用dnf安装

查找系统是否包含mysql的rpm包。
  1. 查找系统是否包含mysql的rpm包。http://ipcmen.com/dnf
    1. 如果没有mysql-server的rpm包,也可以去官网查找对应的rpm地址,然后安装。
dnf search mysql   //查询包含mysql关键字的rpm
  1. 查看具体的mysql server的版本信息
dnf info mysql-server
  1. 安装
dnf install -y mysql-server

拓展:

在系统的rpm包中,一定要区分 mysql 和 mysql-server 
Linux系统-RPM包详解  https://www.cnblogs.com/luodenglin/p/11888751.html

![1637218964(1).png](https://www.icode9.com/i/ll/?i=img_convert/a0c76537af87177c47f12d73b5c906e8.png#clientId=u2c7b2728-c12a-4&from=paste&height=689&id=u25529644&margin=[object Object]&name=1637218964(1).png&originHeight=751&originWidth=845&originalType=binary&ratio=1&size=78647&status=done&style=none&taskId=u6ceb8c49-c558-433b-afcc-03e7c7341d7&width=775.5)
![1637219262(1).png](https://www.icode9.com/i/ll/?i=img_convert/5ce65f747a5c4c5e2e66b681c5a7f2a6.png#clientId=u2c7b2728-c12a-4&from=paste&height=391&id=udbaf8424&margin=[object Object]&name=1637219262(1).png&originHeight=389&originWidth=744&originalType=binary&ratio=1&size=24259&status=done&style=none&taskId=u337a6415-7c8a-47d7-8885-cfa81bb000a&width=748)
![1637219566(1).png](https://www.icode9.com/i/ll/?i=img_convert/3bc396e0b894f85dc6e3a807b6770593.png#clientId=u2c7b2728-c12a-4&from=paste&height=416&id=ub945947f&margin=[object Object]&name=1637219566(1).png&originHeight=649&originWidth=1165&originalType=binary&ratio=1&size=188609&status=done&style=none&taskId=u934e3236-df31-4da2-8a71-0f4fc6a9341&width=746.5)

3、配置数据库参数

  1. 查找数据库的默认配置文件的读取位置
mysql --help | grep my.cnf

#说明,按优先级加载my.cnf

![image.png](https://www.icode9.com/i/ll/?i=img_convert/522834659ee7c4bf1a2fb04d7056e31f.png#clientId=u2c7b2728-c12a-4&from=paste&height=121&id=u1fc6ee8c&margin=[object Object]&name=image.png&originHeight=97&originWidth=601&originalType=binary&ratio=1&size=9246&status=done&style=none&taskId=ufc4519cc-81e7-4590-86db-98283ce8317&width=747.5)

  1. 修改my.cnf
#
# This group is read both both by the client and the server
# use it for options that affect everything
#
[client-server]

#
# include all files from the config directory
#
!includedir /etc/my.cnf.d                

[mysqld]

#数据库默认字符集,主流字符集支持一些特殊表情符号(特殊表情符占用4个字节)
character-set-server = utf8mb4
 
#数据库字符集对应一些排序等规则,注意要和character-set-server对应
collation-server = utf8mb4_general_ci
 
#设置client连接mysql时的字符集,防止乱码
init_connect='SET NAMES utf8mb4'
 
#是否对sql语句大小写敏感,1表示不敏感
lower_case_table_names = 1
 
#最大连接数
max_connections = 400
 
#最大错误连接数
max_connect_errors = 1000

#MySQL连接闲置超过一定时间后(单位:秒)将会被强行关闭
#MySQL默认的wait_timeout  值为8个小时, interactive_timeout参数需要同时配置才能生效
interactive_timeout = 1800
wait_timeout = 1800

拓展:

mysql配置文件的读取:
1. 启动服务时,使用指定的配置文件
  a. 启动命令 mysqld --defaults-file=/etc/my.cnf --user=root
  b. 查看是否指定文件命令 ps aux|grep mysql|grep 'my.cnf'
2. 默认读取默认的my.cnf配置文件
  a. 查询对应的默认文件夹  mysql --help|grep 'my.cnf'
  b. 在my.cnf中,还可以通过包含其他配置文件的路径的方式,调用另外的配置

4、启动数据库服务同时设置开机自启动

systemctl enable --now mysqld

拓展:

systemctl 相关:

  1. Systemctl能够管理的单元包括:服务(.service),挂载点(.mount),套接口(.socket)和设备(.device)作为单元。
  2. 单位的目录:/usr/lib/systemd/system(Centos)或/etc/systemd/system(Ubuntu)
  3. systemctl命令兼容了service,即systemctl也会去/etc/init.d目录下,查看,执行相关程序。
  4. Linux 服务管理有两种方式 service和systemctl

systemctl 命令完全指南
linux中systemctl详细理解及常用命令

5、初始化数据库

mysql_secure_installation

依次需要判断的内容:
	配置验证密码组件,输入 y 
  配置密码验证等级,可以输入 0 、1 、2 ,分别对应三个等级。
  输入密码,需要输入两次,页面上不会显示出你输入的密码,输入完之后按回车即可
  确认使用该密码,输入 y
  是否移除匿名用户,输入 y
  是否禁止root用户远程登录  如果需要远程登录,请输入 n
  是否移除测试数据库,输入 y
  是否重载权限表,输入 y

6、配置数据库的连接信息

mysql -uroot -p   通过新密码再次登陆
create user 'root'@'%' identified by '新密码';    授予远程访问权限
grant all privileges on *.* to 'root'@'%';  授予远程访问权限
flush privileges;  授予远程访问权限
alter user 'root' @'%' identified with mysql_native_password by '新密码'; 授权mysql_native客户端工具

说明

#指定某个用户关于具体表的权限
grant all privileges on 数据库名.* to '用户名'@'%';  

特别注意:

_ 如果还是无法通过客户端远程连接到数据库,可以检查一下防火墙是否禁用3306端口。另外,新买的阿里云服务器,要主要是否配置对应的安全组策略。_

![](https://www.icode9.com/i/ll/?i=img_convert/0a79dec388407d096947195a8a423b5a.png#from=url&id=br9P1&margin=[object Object]&originHeight=232&originWidth=810&originalType=binary&ratio=1&status=done&style=none)![](https://www.icode9.com/i/ll/?i=img_convert/670e97ae41a24ac78f992ed837f3a2a6.png#from=url&id=XJATS&margin=[object Object]&originHeight=232&originWidth=810&originalType=binary&ratio=1&status=done&style=none)

上一篇:OpenShift Security (3) - 准备客户端环境,安装示例应用


下一篇:centos 7.6 安装ansible报错 ImportError: No module named _conf