Centos 7安装MySQL

centos 7默认安装的是mariadb,不再支持mysql的默认安装。mariadb属于mysql的一个分支,详细区别自己可以去查下。

习惯使用mysql的,可以按照以下方法在centos 7上安装MySQL

1、下载mysql Yum Repository,增加Yum源

下载并安装:
wget http://dev.mysql.com/get/mysql-community-release-el7-5.noarch.rpm
rpm -ivh mysql-community-release-el7-5.noarch.rpm

2、检查是否成功添加MySQL Yum Repository

# yum repolist enabled | grep "mysql.*-community.*"
mysql-connectors-community/x86_64       MySQL Connectors Community           30
mysql-tools-community/x86_64            MySQL Tools Community                43
mysql56-community/x86_64                MySQL 5.6 Community Server          306
执行命令看到上边三行内容说明添加成功

3、查看支持的MySQL版本,以及默认启用的版本

# yum repolist all | grep mysql
mysql-connectors-community/x86_64 MySQL Connectors Community      enabled:    30
mysql-connectors-community-source MySQL Connectors Community - So disabled
mysql-tools-community/x86_64      MySQL Tools Community           enabled:    43
mysql-tools-community-source      MySQL Tools Community - Source  disabled
mysql55-community/x86_64          MySQL 5.5 Community Server      disabled
mysql55-community-source          MySQL 5.5 Community Server - So disabled
mysql56-community/x86_64          MySQL 5.6 Community Server      enabled:   306
mysql56-community-source          MySQL 5.6 Community Server - So disabled
mysql57-community-dmr/x86_64      MySQL 5.7 Community Server Deve disabled
mysql57-community-dmr-source      MySQL 5.7 Community Server Deve disabled
支持三个版本,默认启用稳定版mysql56,mysql55和mysql57是禁用状态的

4、修改MySQL启用版本:

通过查看支持MySQL版本发现MySQL 5.5和MySQL 5.7是禁用状态,如果想使用5.5或者5.7需要修改下MySQL 5.5和MySQL 5.7的启用状态。

可以用yum-config-manager这个命令来修改启用禁用状态,或者直接修改/etc/yum.repos.d/mysql-community.repo文件中对应版本的enabled值

直接修改文件如下:
[mysql57-community]
name=MySQL 5.7 Community Server
baseurl=http://repo.mysql.com/yum/mysql-5.7-community/el/6/$basearch/
enabled=1
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-mysql
使用yum-config-manager命令修改:
系统默认没有安装yum-config-manager,先查找下是哪个包提供这个工具:
# yum provides */yum-config-manager
.......
yum-utils-1.1.31-40.el7.noarch : Utilities based around the yum package manager
Repo        : base
Matched from:
Filename    : /usr/bin/yum-config-manager
安装yum-utils这个工具即可。
yum install -y yum-utils

接下来用yum-config-manager修改:
# yum-config-manager --enable mysql57-community-dmr
# yum-config-manager --disable mysql56-community

再查看MySQL的启用和禁用版本状态如下,跟上边对比已经变过来了
# yum repolist all | grep mysql
mysql-connectors-community/x86_64 MySQL Connectors Community      enabled:    30
mysql-connectors-community-source MySQL Connectors Community - So disabled
mysql-tools-community/x86_64      MySQL Tools Community           enabled:    43
mysql-tools-community-source      MySQL Tools Community - Source  disabled
mysql55-community/x86_64          MySQL 5.5 Community Server      disabled
mysql55-community-source          MySQL 5.5 Community Server - So disabled
mysql56-community/x86_64          MySQL 5.6 Community Server      disabled
mysql56-community-source          MySQL 5.6 Community Server - So disabled
mysql57-community-dmr/x86_64      MySQL 5.7 Community Server Deve enabled:   166
mysql57-community-dmr-source      MySQL 5.7 Community Server Deve disabled

5、安装mysql

安装mysql,由于刚才调整过,默认安装的是MySQL 5.7
yum install mysql-community-server
启动MySQL服务:
# systemctl start mysqld.service
查看MySQL启动状态:
# systemctl status mysqld.service
● mysqld.service - MySQL Server
   Loaded: loaded (/usr/lib/systemd/system/mysqld.service; enabled; vendor preset: disabled)
   Active: active (running) since Fri 2017-02-24 23:10:40 CST; 2min 15s ago
     Docs: man:mysqld(8)
           http://dev.mysql.com/doc/refman/en/using-systemd.html
  Process: 59828 ExecStart=/usr/sbin/mysqld --daemonize --pid-file=/var/run/mysqld/mysqld.pid $MYSQLD_OPTS (code=exited, status=0/SUCCESS)
  Process: 59755 ExecStartPre=/usr/bin/mysqld_pre_systemd (code=exited, status=0/SUCCESS)
 Main PID: 59831 (mysqld)
   CGroup: /system.slice/mysqld.service
           └─59831 /usr/sbin/mysqld --daemonize --pid-file=/var/run/mysqld/mysqld.pid

Feb 24 23:10:34 localhost.localdomain systemd[1]: Starting MySQL Server...
Feb 24 23:10:40 localhost.localdomain systemd[1]: Started MySQL Server.

6、登录MySQL数据库

安装好以后会默认生成一个随机root密码,记录在日志中的,直接查看就行:

# grep 'temporary password' /var/log/mysqld.log
2017-02-24T15:10:35.845146Z 1 [Note] A temporary password is generated for root@localhost: y28nghW#%/!G

找到密码登录以后可以修改root密码:

# mysql -u root -p
mysql> ALTER USER 'root'@'localhost' IDENTIFIED BY 'password';
密码必须满足以下条件:至少包含一个大写字母、一个小写字母、一个数字、一个特殊字符,不少于8个字符。

7、进行一下简单的初始化安全设置:

# mysql_secure_installation
1、输入root密码,需要更改了此处可以更改
2、移除匿名用户
3、不允许root用户远程登录
4、移除test数据库
5、重新加载配置

8、关于密码复杂性,如果想关闭可以按照以下步骤操作:

此处用的MySQL 5.7,可以参考官方文档对于这点的说明:

https://dev.mysql.com/doc/refman/5.7/en/validate-password-options-variables.html

查看所有密码策略:
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             | MEDIUM |
| validate_password_special_char_count | 1      |
+--------------------------------------+--------+
7 rows in set (0.00 sec)
各项注释:
validate_password_check_user_name:用户名和密码的一个验证,默认关闭
validate_password_dictionary_file:指定密码验证文件路径
validate_password_length:限制密码长度
validate_password_mixed_case_count:限制必须至少包含小写和大写字母个数
validate_password_number_count:限制包含数字的个数
validate_password_policy:限定密码强度等级。
    密码等级如下:
          0/LOW:只检查长度
          1/MEDIUM:检查长度、数字、大小写、特殊字符
          2/STRONG:检查长度、数字、大小写、特殊字符、字典文件
validate_password_special_char_count:限制至少包含特殊字符个数

修改密码策略:
mysql> set global validate_password_policy=0;
Query OK, 0 rows affected (0.00 sec)

mysql> set global validate_password_length=10;
Query OK, 0 rows affected (0.00 sec)
此时重新查看密码策略已经改变了。