centOs7 安装配置mysql
一,安装YUM Repo
1,下载命令:
wget https://dev.mysql.com/get/mysql57-community-release-el7-9.noarch.rpm
二, 进行repo的安装:
rpm -ivh mysql57-community-release-el7-9.noarch.rpm
[root@VM-0-10-centos server]# rpm -ivh mysql57-community-release-el7-9.noarch.rpm
warning: mysql57-community-release-el7-9.noarch.rpm: Header V3 DSA/SHA1 Signature, key ID 5072e1f5: NOKEY
Preparing... ################################# [100%]
Updating / installing...
1:mysql57-community-release-el7-9 ################################# [100%]
[root@VM-0-10-centos server]#
执行完成后会在/etc/yum.repos.d/目录下生成两个repo文件mysql-community.repo mysql-community-source.repo
三,使用yum命令即可完成安装
注意:必须进入到 /etc/yum.repos.d/目录后再执行以下脚本
1,安装命令:
yum install mysql-server
2,启动mysql:
systemctl start mysqld
3,
四, 登录:
1,先获取安装时的临时密码
grep ‘temporary password’ /var/log/mysqld.log
然后登录,输入获取的临时密码
mysql -u root -p
[root@VM-0-10-centos yum.repos.d]# mysql -uroot -p
Enter password:
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 5
Server version: 5.7.33
Copyright (c) 2000, 2021, Oracle and/or its affiliates.
Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.
Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
mysql>
2,修改密码
ALTER USER ‘root’@‘localhost’ IDENTIFIED BY ‘test123’;
这时可能会出现一个错误
mysql> ALTER USER 'root'@'localhost' IDENTIFIED BY '12345678';
ERROR 1819 (HY000): Your password does not satisfy the current policy requirements
需要设置密码的验证强度等级,设置 validate_password_policy 的全局参数为 LOW 即可,
输入设值语句 “ set global validate_password_policy=LOW; ” 进行设值,
mysql> set global validate_password_policy=LOW;
Query OK, 0 rows affected (0.00 sec)
mysql> ALTER USER 'root'@'localhost' IDENTIFIED BY '!abc1234';
Query OK, 0 rows affected (0.00 sec)
mysql>
3, 查看密码策略
mysql> SHOW VARIABLES LIKE 'validate_password%';
+--------------------------------------+-------+
| Variable_name | Value |
+--------------------------------------+-------+
| validate_password_check_user_name | OFF |
| validate_password_dictionary_file | |
| validate_password_length | 8 |
| validate_password_mixed_case_count | 1 |
| validate_password_number_count | 1 |
| validate_password_policy | LOW |
| validate_password_special_char_count | 1 |
+--------------------------------------+-------+
7 rows in set (0.00 sec)
mysql>
当前是8位密码,如需改为6位,
输入设值语句 “ set global validate_password_length=6; ” 进行设值,
注:在默认密码的长度最小值为 4 ,由 大/小写字母各一个 + 阿拉伯数字一个 + 特殊字符一个,只要设置密码的长度小于 3 ,都将自动设值为 4 ,
4,关于 mysql 密码策略相关参数;
1)、validate_password_length 固定密码的总长度;
2)、validate_password_dictionary_file 指定密码验证的文件路径;
3)、validate_password_mixed_case_count 整个密码中至少要包含大/小写字母的总个数;
4)、validate_password_number_count 整个密码中至少要包含阿拉伯数字的个数;
5)、validate_password_policy 指定密码的强度验证等级,默认为 MEDIUM;
关于 validate_password_policy 的取值:
LOW:只验证长度;
1/MEDIUM:验证长度、数字、大小写、特殊字符;
2/STRONG:验证长度、数字、大小写、特殊字符、字典文件;
6)、validate_password_special_char_count 整个密码中至少要包含特殊字符的个数;
五,开启远程控制
MySQL默认是没有开启远程控制的,必须添加远程访问的用户,即默认是只能自己访问,别的机器是访问不了的。
1.1、连接服务器: mysql -u root -p
1.2、看当前所有数据库:show databases;
1.3、进入mysql数据库:use mysql;
1.4、查看mysql数据库中所有的表:show tables;
1.5、修改user表中的Host: update user set Host=’%’ where User=‘root’;
说明: % 代表任意的客户端,可替换成具体IP地址。
1.6、最后刷新一下:flush privileges;
六,其他配置
1、设置安全选项:
mysql_secure_installation
2、关闭MySQL
systemctl stop mysqld
3、重启MySQL
systemctl restart mysqld
4、查看MySQL运行状态
systemctl status mysqld
5、设置开机启动
systemctl enable mysqld
6、关闭开机启动
systemctl disable mysqld
7、配置默认编码为utf8:
vi /etc/my.cnf
#添加
[mysqld] character_set_server=utf8 init_connect=‘SET NAMES utf8’
七,创建用户和权限管理
1.创建用户:
- 指定ip:192.118.1.1的mjj用户登录
create user ‘alex’@‘192.118.1.1’ identified by ‘123’;
- 指定ip:192.118.1.开头的mjj用户登录
create user ‘alex’@‘192.118.1.%’ identified by ‘123’;
- 指定任何ip的mjj用户登录
create user ‘alex’@’%’ identified by ‘123’;
2.删除用户
drop user ‘用户名’@‘IP地址’;
3.修改用户
rename user ‘用户名’@‘IP地址’ to ‘新用户名’@‘IP地址’;
4.修改密码
set password for ‘用户名’@‘IP地址’=Password(‘新密码’);
5.对当前的用户授权管理
- 查看权限
show grants for ‘用户’@‘IP地址’
- 授权 mjj用户仅对db1.t1文件有查询、插入和更新的操作
grant select ,insert,update on db1.t1 to “test”@’%’;
- 表示有所有的权限,除了grant这个命令,这个命令是root才有的。mjj用户对db1下的t1文件有任意操作
grant all privileges on db1.t1 to “alex”@’%’;
- mjj用户对db1数据库中的文件执行任何操作
grant all privileges on db1.* to “alex”@’%’;
- mjj用户对所有数据库中文件有任何操作
grant all privileges on . to “test”@’%’;
取消权限
- 取消mjj用户对db1的t1文件的任意操作
revoke all on db1.t1 from ‘alex’@"%";
- 取消来自远程服务器的mjj用户对数据库db1的所有表的所有权限
revoke all on db1.* from ‘alex’@"%";
- 取消来自远程服务器的mjj用户所有数据库的所有的表的权限
revoke all privileges on . from ‘alex’@’%’;