装置

首要,测验一下直接运用 yum 装置 MySQL

yum install mysql-community-server

假如成功,表明不需求装备MySQL rpm 源信息,直接就装置完成了

但是,假如呈现以下过错:

Loading mirror speeds from cached hostfile
没有可用软件包 mysql-community-server。
过错:无须任何处理

表明咱们没有添加装置包的源信息,需求装置 MySQL rpm 源信息

装置 MySQL rpm 源信息

翻开 dev.mysql.com/downloads/r…

CentOS / Linux 安装MySQL(超简单详细)

依据你的体系版别,选择对应的装置包,例如我的是CentOS 7.5,这个体系的Linux内核是 Linux 7,所以我选择了红框内的地址,咱们依次类推。

拼接下载地址头:dev.mysql.com/get/,得到以下地址

 http://dev.mysql.com/get/mysql80-community-release-el7-7.noarch.rpm

运用 wget + 方才拼接的地址,下载装置包源信息

wget  http://dev.mysql.com/get/mysql80-community-release-el7-7.noarch.rpm

rpm 装置源信息

rpm -ivh mysql80-community-release-el7-7.noarch.rpm

装置

再测验运用 yum 装置MySQL

yum install mysql-community-server

装置过程中,会提示让咱们承认,一概输入 y 按回车即可

装置完成后,yum会主动掩盖自带的mariaDB,所以不需求咱们手动卸载它

检查装置是否成功

检查一下方才的装置是否成功

rpm -qa | grep mysql

输出:

mysql-community-libs-compat-8.0.33-1.el7.x86_64
mysql-community-icu-data-files-8.0.33-1.el7.x86_64
mysql80-community-release-el7-7.noarch
mysql-community-common-8.0.33-1.el7.x86_64
mysql-community-libs-8.0.33-1.el7.x86_64
mysql-community-server-8.0.33-1.el7.x86_64
mysql-community-client-8.0.33-1.el7.x86_64
mysql-community-client-plugins-8.0.33-1.el7.x86_64

输出相似以上内容,表明装置完成

检查mariaDB是否被掩盖

rpm -qa | grep mariadb

输出空,表明 mariaDB 已经被成功掩盖。

MySQL 常用命令

# 启动
systemctl start mysqld
# 第一次启动后,可以检查mysql初始化暗码
grep 'temporary password' /var/log/mysqld.log
# 重启
systemctl restart mysqld
# 停止
systemctl stop mysqld
#检查状态
systemctl status mysqld
#开机启动
systemctl enable mysqld
systemctl daemon-reload
# 检查进程、版别信息
ps -ef | grep mysql
或
netstat -atp
# 登录
mysql -u root -p'暗码内容'
# 检查一切表
show databases;
# 进入数据库
use 表名
# 检查一切表
show tables
# 检查某张表信息
desc 表名
# 查
select * from 表名
# 删
delete from 表名 where field=xx
# 改
update 表名 set field='xxx' where field='xxx';

登录和修正暗码

咱们装置的时分,并没有设置初始暗码

所以 mysql 在第一次启动的时分,会主动初始化一个暗码

经过以下这行代码,咱们可以检查 mysql 主动初始化的暗码:

# 第一次启动后,可以检查mysql初始化暗码
grep 'temporary password' /var/log/mysqld.log
输出(root@localhost: 后面的是暗码):
2023-04-21T06:03:27.071550Z 6 [Note] [MY-010454] [Server] A temporary password
is generated for root@localhost: r2to%yZ%a)%s

登录

# 登录mysql,必定要注意:-p和'暗码'之间是没有空格的
mysql -u root -p'r2to%yZ%a)%s'

修正 root 暗码

注意了,默认的暗码战略,需求:大写英文 + 特殊字符 + 数字

ALTER USER 'root'@'localhost' IDENTIFIED BY 'Root_123';

有些同学可能会觉得,老子暗码想设置啥就设置啥,轮得到你这 mysql 在这里瞎BB?

那也是可以修正暗码校验战略的

首要,装置暗码验证插件

但是有个前提,你仍是需求先按它的要求修正第一次暗码,才能装置暗码验证战略插件,哈哈

1、先依照mysql的要求,修正一次暗码
ALTER USER 'root'@'localhost' IDENTIFIED BY 'Root_123';
2、退出mysql
exit
3、从头登录mysql
mysql -u root -p'Root_123'
4、装置暗码验证插件
install plugin validate_password soname 'validate_password.so';
5、检查是否启用了插件
select plugin_name, plugin_status from information_schema.plugins where plugin_name like 'validate%';
+-------------------+---------------+
| plugin_name       | plugin_status |
+-------------------+---------------+
| validate_password | ACTIVE        |
+-------------------+---------------+
输出这样的内容,表明成功启用

检查验证战略的键、值信息

SHOW VARIABLES LIKE 'validate_password%';
关于高版别的mysql,例如mysql 8,验证战略的key,是 validate_password.xxx
+--------------------------------------+-------+
| Variable_name                        | Value |
+--------------------------------------+-------+
| validate_password.check_user_name    | ON    |
| validate_password.dictionary_file    |       |
| validate_password.length             | 8     |
| validate_password.mixed_case_count   | 1     |
| validate_password.number_count       | 1     |
| validate_password.policy             | MEDIUM|
| validate_password.special_char_count | 1     |
+--------------------------------------+-------+
关于低版别的mysql,例如mysql 5.7,验证战略的key,是 validate_password_xxx
+--------------------------------------+-------+
| Variable_name                        | Value |
+--------------------------------------+-------+
| validate_password.check_user_name    | ON    |
| validate_password.dictionary_file    |       |
| validate_password.length             | 8     |
| validate_password.mixed_case_count   | 1     |
| validate_password.number_count       | 1     |
| validate_password.policy             | MEDIUM|
| validate_password.special_char_count | 1     |
+--------------------------------------+-------+

咱们修正暗码战略和暗码长度

我的战略信息的 key ,是 validate_password.xxx这个格局的,所以依照如下进行设置

设置暗码校验战略为:0(只验证暗码长度)
set global validate.password_policy=0;
设置暗码最低长度=N,例如设置暗码最低长度=6,也便是暗码最少要设置6个字符及以上
set global validate.password_length=6;

好了,现在暗码就可以依照你方才装备的战略,来进行设置暗码了

ALTER USER 'root'@'localhost' IDENTIFIED BY '123456';

敞开 root 账户远程登录

# 登录
mysql -u root -p'暗码'
# 假如你的数据库是 mysql 8 及以上
# 1、进入数据库
use mysql
# 2、修正user表
update user set host='%' where user='root';
# mysql 5.7 及之前,执行这行代码即可
GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY '你的暗码' WITH GRANT OPTION;
# 重载授权表
FLUSH PRIVILEGES;
# 退出
exit
# 重启
systemctl restart mysqld

端口敞开

经过实测,运用阿里云或许腾讯云,在服务器上,无需装备 iptables 端口信息

但必须在阿里云或许腾讯云控制台 – 服务器 – 安全组,敞开 3306端口。

关于需求装备iptables的,可以依照如下进行装备:

# 翻开装备文件,按 i 输入
sudo vim /etc/sysconfig/iptables
# 将以下信息仿制进去
-A INPUT -p tcp -m state --state NEW -m tcp --dport 3306 -j ACCEPT
按esc键,输入 :wq 保存。