在CentOS8下安装使用MySQL8
1、下载安装CentOS8
1.1 下载
搜索下载安装CentOS8(https://www.centos.org/download/)。
1.2 安装
在虚拟机中选择DVD ISO文件路径,自定义安装,不要缺省安装,选择中文。
1.3 更新
安装完成后重启,在登录界面用root登录,然后更新系统:
[[email protected]~]# dnf upgrade
更新完成后,检查当前安装的语言:
[[email protected]~]# locale -a
然后安装zh-CN语言包:(如果已经安装略过)
[[email protected]~]# dnf install langpacks-zh_CN
1.4 查看版本、IP地址
查看操作系统的版本:
[[email protected]~]# cat /etc/redhat-release
查看内核kernel的版本:
[[email protected]~]# uname –r
查看CentOS8的IP地址:10.10.10.10
[[email protected]~]# ip addr
2、安装MySQL8
最好在CentOS8的登录界面选择其他用户root登录进行下面的操作。
参考https://www.cnblogs.com/kasnti/p/11929030.html。
2.1 CentOS8下安装MySQL 8.0
安装MySQL 8.0:
[[email protected]~]# dnf install @mysql
卸载MySQL 8.0:
[[email protected]~]# dnf remove @mysql
字符集:
MySQL8.0默认已经是utf8mb4字符集,所以字符集不再修改。
2.2 开启MySQL服务并设置开机自动启动
运行以下命令启动MySQL服务并使之开机时自动启动:
[[email protected]~]# systemctl enable --now mysqld
(sudo systemctl enable --now mysqld)
要检查MySQL服务器是否正在运行,请输入:
[[email protected]~]# systemctl status mysqld
(sudo systemctl status mysqld)
2.3 添加密码及安全设置
运行mysql_secure_installation脚本。
[[email protected]~]# mysql_secure_installation
该脚本执行一些与安全性相关的操作并设置MySQL根密码Test123~,步骤如下:
要求你配置VALIDATE PASSWORD component(验证密码组件):输入y,回车进入该配置:
-
- 选择密码验证策略等级,这里选择0(low),回车
- 输入新密码两次
- 确认是否继续使用提供的密码?输入y,回车
- 移除匿名用户?输入y,回车
-
- 不允许root远程登陆?需要远程登陆,输入n,回车
- 移除test数据库?输入n,回车(输入y也可)
- 重新载入权限表?输入y,回车
2.4 配置远程登陆
如果需要设置root账户远程登陆,上一步骤中,不允许root远程登陆?这一步需要设为n。接下来本机登录MySQL,将root用户的host字段设为'%',意为接受root所有IP地址的登录请求:
本机登录MySQL:
[[email protected]~]# mysql -uroot -pTest123~
mysql -uroot -p<上面步骤中设置的密码>
回车后即可登录,接下来终端变成了mysql>开头:
接着继续执行mysql语句,将root用户的host字段设为'%':
use mysql;
update user set host='%' where user='root';
flush privileges;
2.5 开启系统防火墙的3306端口
设置完成后输入exit退出mysql,回到终端shell界面,接着开启系统防火墙的3306端口:[[email protected]~]#
firewall-cmd --add-port=3306/tcp --permanent
firewall-cmd --reload
sudo firewall-cmd --add-port=3306/tcp --permanent
sudo firewall-cmd --reload
2.6 关闭MySQL主机查询DNS和关闭SSL连接
MySQL会反向解析远程连接地址的DNS记录,如果MySQL主机无法连接外网,则DNS可能无法解析成功,导致第一次连接MySQL速度很慢,所以在配置中可以关闭该功能。
如果不使用SSL连接,需要关闭SSL连接。
打开/etc/my.cnf文件,添加以下配置(都要在root用户下操作):
[mysqld]
# 关闭MySQL主机查询dns
skip-name-resolve
# 关闭SSL连接
skip_ssl
编辑完成后必须MySQL重启服务:
[[email protected]~]# systemctl restart mysqld
sudo systemctl restart mysqld
重启服务后,登录MySQL:
[[email protected]~]# mysql -uroot -pTest123~
查看SSL是开启还是关闭的:
mysql> show global variables like '%ssl%';
3、创建数据库和用户
3.1 创建数据库
mysql> create database mydata;
3.2 如果使用SSL,创建普通用户
mysql> CREATE USER 'my1'@'localhost' IDENTIFIED BY 'my2_3';
3.3 如果不使用SSL,创建普通用户
mysql> CREATE USER 'my1'@'%' IDENTIFIED BY 'my2_3' REQUIRE NONE;
3.4 为用户授权数据库权限
格式:grant 权限 on 数据库.* to 'username'@'登录主机'
为了远程连接数据库‘登录主机’一般为’%’,不用’localhost’;
然后须要运行刷新权限的命令:flush privileges;
grant all privileges on mydata.* to 'my1'@'%';
flush privileges;
4、利用C++Builder的TFDConnection连接MySQL8的设置
4.1 设置libmysql.dll
32位程序和64位程序用的不一样(与MySQL的32和64位无关,与Windows的32和64位无关,只与编写的程序有关)。
如果编写32位程序而Windows是64位的,必须另外找一台32位的计算机,到网站https://dev.mysql.com/downloads/router/ 下载安装MySQL Router后,在安装目录下的LIB目录中找到libmysql.dll,拷贝到程序目录和RAD Studio的BIN目录(双击TFDConnection,点击test时用到)。
4.2 设置TFDConnection
双击TFDConnection,输入数据库Database、User_Name、Password、Server等相关参数,如果前面选择不使用SSL连接,UseSSL必须设置为False,否则为True。
点击test,如果没有错误,显示成功连接。