当先锋百科网

首页 1 2 3 4 5 6 7

MySQL的安装

注意:安装过程我们需要通过开启管理员权限来安装,否则会由于权限不足导致无法安装。

Linux上用yum安装 MySQL

Linux平台上推荐使用RPM包来安装Mysql,MySQL AB提供了以下RPM包的下载地址:

  • MySQL - MySQL服务器。你需要该选项,除非你只想连接运行在另一台机器上的MySQL服务器。
  • MySQL-client - MySQL 客户端程序,用于连接并操作Mysql服务器。
  • MySQL-devel - 库和包含文件,如果你想要编译其它MySQL客户端,例如Perl模块,则需要安装该RPM包。
  • MySQL-shared - 该软件包包含某些语言和应用程序需要动态装载的共享库(libmysqlclient.so*),使用MySQL。
  • MySQL-bench - MySQL数据库服务器的基准和性能测试工具。

安装前,我们可以检测系统是否自带安装 MySQL:

 rpm -qa | grep mysql

如果你系统有安装,那可以选择进行卸载:

 rpm -e mysql                  // 普通删除模式 
 rpm -e --nodeps mysql  //强力删除模式,如果使用上面命令删除时,提示有依赖的其它文件,则用该命令可以对其进行强力删除

YUM安装 MySQL:

接下来我们在 Centos7 系统下使用 yum 命令安装 MySQL,需要注意的是 CentOS 7 版本中
MySQL数据库已从默认的程序列表中移除,所以在安装前我们需要先去官网下载 Yum
资源包,下载地址为:
https://dev.mysql.com/downloads/repo/yum/

在这里插入图片描述

1. 下载并安装MySQL官方的 Yum Repository

1.1 使用下面的命令就直接下载了安装用的Yum Repository。

1.2. 使用yum安装MySQL了

2. MySQL数据库设置

2.1.首先启动MySQL

2.2. 查看MySQL运行状态,运行状态如图:

[root@bogon yum.repos.d]# systemctl status mysqld.service 
● mysqld.service - MySQL Server
   Loaded: loaded (/usr/lib/systemd/system/mysqld.service; enabled; vendor preset: disabled)
   Active: active (running) since Sun 2020-03-22 06:18:18 CST; 6min ago
     Docs: man:mysqld(8)
           http://dev.mysql.com/doc/refman/en/using-systemd.html
  Process: 2206 ExecStart=/usr/sbin/mysqld --daemonize --pid-file=/var/run/mysqld/mysqld.pid $MYSQLD_OPTS (code=exited, status=0/SUCCESS)
  Process: 2157 ExecStartPre=/usr/bin/mysqld_pre_systemd (code=exited, status=0/SUCCESS)
 Main PID: 2209 (mysqld)
   CGroup: /system.slice/mysqld.service
           └─2209 /usr/sbin/mysqld --daemonize --pid-file=/var/run/mysqld/mysqld.pid

Mar 22 06:18:14 bogon systemd[1]: Starting MySQL Server...
Mar 22 06:18:18 bogon systemd[1]: Started MySQL Server.

2.3. 此时MySQL已经开始正常运行,不过要想进入MySQL还得先找出此时root用户的密码,通过如下命令可以在日志文件中找出密码:

  [root@bogon yum.repos.d]# grep password /var/log/mysqld.log 
2020-03-21T22:18:16.434127Z 1 [Note] A temporary password is generated for root@localhost: pWpa,pBJa21B
   

上面的”pWpa,pBJa21B“就是初始密码

3. 如下命令进入数据库:

3.1. 输入初始密码,此时不能做任何事情,因为MySQL默认必须修改密码之后才能操作数据库:

> mysql> ALTER USER 'root'@'localhost' IDENTIFIED BY '新密码'; //修改密码,密码必须符合复杂性(密码位数为8,其中包括数字、英文小写字母、大写字母、特殊符号);

3,2. 如果不想以后设置密码这么复杂可以修改password策略:

 mysql> show variables like "%password%";
 +----------------------------------------+-----------------+
| Variable_name                          | Value           |
+----------------------------------------+-----------------+
| default_password_lifetime              | 0               |
| disconnect_on_expired_password         | ON              |
| log_builtin_as_identified_by_password  | OFF             |
| mysql_native_password_proxy_users      | OFF             |
| old_passwords                          | 0               |
| report_password                        |                 |
| sha256_password_auto_generate_rsa_keys | ON              |
| sha256_password_private_key_path       | private_key.pem |
| sha256_password_proxy_users            | OFF             |
| sha256_password_public_key_path        | public_key.pem  |
| 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               |   MEDIUM          |
| validate_password_special_char_count   | 1               |
+----------------------------------------+-----------------+
17 rows in set (0.08 sec)

3.3. 各项值说明

validate_password_policy:密码安全策略,默认MEDIUM策略

策略检查规则
0 or LOW长度
1 or MEDIUM长度;数字、小写/大写和特殊字符
2 or STRONG长度;数字、小写/大写和特殊字符;字典文件

validate_password_dictionary_file:密码策略文件,策略为STRONG才需要

validate_password_length:密码最少长度

validate_password_mixed_case_count:大小写字符长度,至少1个

validate_password_number_count :数字至少1个
validate_password_special_char_count:特殊字符至少1个

3.4. 修改策略(将策略要求置为LOW,长度要求置为1)

 mysql> set global validate_password_policy=0;  //设置密码策略为LOW
 mysql> set global validate_password_length=1; //设置密码长度为1
 mysql> show variables like "%password%";
+----------------------------------------+-----------------+
| Variable_name                          | Value           |
+----------------------------------------+-----------------+
| default_password_lifetime              | 0               |
| disconnect_on_expired_password         | ON              |
| log_builtin_as_identified_by_password  | OFF             |
| mysql_native_password_proxy_users      | OFF             |
| old_passwords                          | 0               |
| report_password                        |                 |
| sha256_password_auto_generate_rsa_keys | ON              |
| sha256_password_private_key_path       | private_key.pem |
| sha256_password_proxy_users            | OFF             |
| sha256_password_public_key_path        | public_key.pem  |
| validate_password_check_user_name      | OFF             |
| validate_password_dictionary_file      |                 |
| validate_password_length               | 4               |
| validate_password_mixed_case_count     | 1               |
| validate_password_number_count         | 1               |
| validate_password_policy               | LOW             |
| validate_password_special_char_count   | 1               |
+----------------------------------------+-----------------+
17 rows in set (0.08 sec)
*经测试,最小长度为4,设置为1无效,所以默认最小值为4。*

3.5. 重置密码

 mysql> alter user 'root'@'localhost' identified by '1234';
 *密码可以登陆了,以上修改密码策略为临时修改服务重启一下就无效了*

4. 永久修改密码策略:

4.1. 关闭MySQL服务;

4.2. 编辑MySQL的配置文件:

 [root@bogon ~]# vim /etc/my.cnf
 ............
  [mysqld]
 validate_password_policy=0    
 validate_password_length=4 
 ...........

4.3. 开启MySQL服务:

 [root@bogon ~]# systemctl start mysqld.service
 *没有报错就说明修改成功了。*