安装步骤
1,更新系统的软件包列表 (非必需,可跳过)
sudo apt-get update # 更新系统的软件包列表
sudo apt-get upgrade # 将系统中的所有软件包更新到最新版本
2,安装 MySQL
在安装过程中,系统会提示为 MySQL root 用户设置一个密码。请确保记住这个密码,因为稍后需要使用它来访问 MySQL 服务器。
sudo apt-get install mysql-server
如果此时没有要求输入密码,则表示没有给root 用户设置密码;后续shell 连接mysql 时,需要使用 sudo 连接。
3,配置 MySQL
如果 MySQL 正在运行,你应该会看到一个绿色的状态信息显示 "active (running)"。
sudo mysql_secure_installation
4,查看Mysql 服务状态
sudo systemctl status mysql.service
如果 MySQL 正在运行,你应该会看到一个绿色的状态信息显示 "active (running)"。
5,连接到 MySQL
sudo mysql -u root -p
然后输入你之前设置的密码。
疑问与总结
1,mysql 服务的默认配置在哪?
mysql-server 启动后,默认配置一般在 /etc/mysql/mysql.cnf, 这个文件中默认有两个配置子项,如下:
!includedir /etc/mysql/conf.d
!includedir /etc/mysql/mysql.conf.d/
在上述配置中,mysql生成的配置默认内容放在了 /etc/mysql/mysql.conf.d/mysqld.cnf 文件之中
2,msyql 服务默认root 用户密码
apt-get install mysql-server时,如果在此过程中设置了root密码,在初次root连接时,需要使用此密码;如果未指定root 密码,初次连接时,则不需指定密码。
3,远程连接
mysql服务默认配置中,bind-address = 127.0.0.1 ,意味着只能本机连接;如果需要远程连接msyql-server,则要将bind-server 配置改为 bind-address = 0.0.0.0 这样子就可以远程连接了。
root@node2:/etc/mysql# sudo ss -tulnp | grep 3306
tcp LISTEN 0 151 0.0.0.0:3306 0.0.0.0:* users:(("mysqld",pid=23908,fd=23))
tcp LISTEN 0 70 0.0.0.0:33060 0.0.0.0:* users:(("mysqld",pid=23908,fd=21))
root@node2:/etc/mysql#
4,创建其他用户 和 用户权限管理
# 创建用户
CREATE USER 'john'@'%' IDENTIFIED BY 'password123';
# 权限复制
GRANT ALL PRIVILEGES ON database_name.* TO 'john'@'%';
# 生效设置的权限
FLUSH PRIVILEGES;
# 查看user权限信息
SHOW GRANTS FOR 'username'@'host' [ON database];
5,设置mysql 密码
msyql服务validate_password.policy
是 MySQL 中的一个配置项,用于设置密码验证插件的策略。该插件用于检查用户密码的复杂性。
validate_password.policy
可以设置的值有三种:
0
或LOW
:密码长度至少是8个字符。1
或MEDIUM
:密码长度至少是8个字符,并且满足以下条件中的三个:包含数字、包含大写字母、包含小写字母、包含特殊字符。2
或STRONG
:密码长度至少是8个字符,并且满足以下条件中的四个:包含数字、包含大写字母、包含小写字母、包含特殊字符,以及密码不能包含字典文件中的单词。
这个配置项的默认值通常是 MEDIUM
。可以通过下列演示步骤来修改 此配置的值:
mysql> SHOW VARIABLES LIKE 'validate_password%';
+-------------------------------------------------+--------+
| Variable_name | Value |
+-------------------------------------------------+--------+
| validate_password.changed_characters_percentage | 0 |
| 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 |
+-------------------------------------------------+--------+
8 rows in set (0.00 sec)
mysql> set GLOBAL validate_password.policy='LOW';
Query OK, 0 rows affected (0.00 sec)
mysql> SHOW VARIABLES LIKE 'validate_password%';
+-------------------------------------------------+-------+
| Variable_name | Value |
+-------------------------------------------------+-------+
| validate_password.changed_characters_percentage | 0 |
| 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 | LOW |
| validate_password.special_char_count | 1 |
+-------------------------------------------------+-------+
8 rows in set (0.01 sec)