contos7.x安装mysql8.xxx
判断是否有MySQL rpm 源信息
如果有直接通过下文步骤1下载命令下载,如果没有则通过以下步骤2的方式配置,再通过步骤1的方式下载
-
尝试一下直接使用 yum 安装 MySQL
yum install mysql-community-server
如果成功,表示不需要配置MySQL rpm 源信息,直接就安装完成了
-
如果报错
Loading mirror speeds from cached hostfile 没有可用软件包 mysql-community-server。 错误:无须任何处理
此时没有添加安装包的源信息,需要安装 MySQL rpm 源信息
安装 MySQL rpm 源信息
打开 http://dev.mysql.com/downloads/repo/yum/
根据系统版本,选择对应的安装包,此处选择对应我的电脑版本CentOS 7.x,这个系统的Linux内核是 Linux 7.xx,所以我选择了标注的地址。
拼接下载地址头:http://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 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 自动初始化的密码: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的要求,修改一次密码
ALTER USER 'root'@'localhost' IDENTIFIED BY 'Root_123';
-
退出mysql
exit
-
重新登录mysql
mysql -u root -p'Root_123'
-
安装密码验证插件
install plugin validate_password soname 'validate_password.so';
-
查看是否启用了插件
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端口。