CentOS7使用yum 安装Mysql5.7
CentOS7使用yum 安装Mysql5.7
安装环境 :CentOS7 64位 MINI版,安装MySQL5.7
1、配置yum源
# 下载mysql源安装包
[root@localhost ~]# wget http://dev.mysql.com/get/mysql57-community-release-el7-8.noarch.rpm
#如果出现 -bash: wget: 未找到命令 则证明wget没有安装则执行下面命令
[root@localhost ~]# yum -y install wget
已加载插件:fastestmirror
Loading mirror speeds from cached hostfile
* base: mirrors.aliyun.com
* extras: mirrors.163.com
* updates: mirrors.163.com
正在解决依赖关系
..............
# 安装mysql源
[root@localhost ~]# yum localinstall mysql57-community-release-el7-8.noarch.rpm
#安装完成后,检查mysql源是否安装成功
[root@localhost ~]# yum repolist enabled | grep "mysql.*-community.*"
mysql-connectors-community/x86_64 MySQL Connectors Community 65
mysql-tools-community/x86_64 MySQL Tools Community 69
mysql57-community/x86_64 MySQL 5.7 Community Server 287
#如果出现上面的情况则证明安装成功
代码解释
通过修改vim /etc/yum.repos.d/mysql-community.repo源文件内容来调整默认安装的MySQL数据库版本。具体操作如下:首先将MySQL 5.7源库对应的enabled=1设置为enabled=0以去除该版本;接着将MySQL 5.6源库对应的enabled=0设置为enabled=1以重新启用该版本。完成上述设置后即可实现MySQL 5.6版本的成功安装。

2、安装MySQL
#执行如下yum命令开始安装(安装过程需耐心等待)
[root@localhost ~]# yum install mysql-community-server
已加载插件:fastestmirror
Loading mirror speeds from cached hostfile
* base: mirrors.aliyun.com
* extras: mirrors.163.com
* updates: mirrors.163.com
正在解决依赖关系
--> 正在检查事务
---> 软件包 mysql-community-server.x86_64.0.5.7.23-1.el7 将被 安装
....................
...................
替代:
mariadb-libs.x86_64 1:5.5.56-2.el7
完毕!
代码解释
3、启动MySQL服务
#启动mysql服务
[root@localhost ~]# systemctl start mysqld
#查看MySQL的启动状态
[root@localhost ~]# systemctl status mysqld
● mysqld.service - MySQL Server
Loaded: loaded (/usr/lib/systemd/system/mysqld.service; enabled; vendor preset: disabled)
Active: active (running) since 日 2018-09-23 11:13:39 CST; 10s ago
Docs: man:mysqld(8)
http://dev.mysql.com/doc/refman/en/using-systemd.html
Process: 1225 ExecStart=/usr/sbin/mysqld --daemonize --pid-file=/var/run/mysqld/mysqld.pid $MYSQLD_OPTS (code=exited, status=0/SUCCESS)
Process: 1152 ExecStartPre=/usr/bin/mysqld_pre_systemd (code=exited, status=0/SUCCESS)
Main PID: 1228 (mysqld)
CGroup: /system.slice/mysqld.service
└─1228 /usr/sbin/mysqld --daemonize --pid-file=/var/run/mysqld/mysqld.pid
9月 23 11:13:35 localhost.localdomain systemd[1]: Starting MySQL Server...
9月 23 11:13:39 localhost.localdomain systemd[1]: Started MySQL Server.
#如出现Active: active (running) since 日 2018-09-23 11:13:39 CST; 10s ago则证明mysql已启动
代码解释
4、mysql设置开机启动
[root@localhost ~]# systemctl enable mysqld
[root@localhost ~]# systemctl daemon-reload
代码解释
5、修改root本地登录密码
在mysql安装完成后,在/var/log/mysqld.log文件中配置root用户并为它设置默认密码。按照以下步骤查找root用户的默认密码信息,并登录MySQL数据库进行相关设置:
[root@localhost ~]# grep 'temporary password' /var/log/mysqld.log
2018-09-23T03:13:36.458329Z 1 [Note] A temporary password is generated for root@localhost: rstTpp#fU6ig
# rstTpp#fU6ig则为mysql的默认密码
#登录mysql
[root@localhost ~]# mysql -uroot -p
Enter password:(输入上面的默认密码即可)
#修改root密码
set password for 'root'@'localhost'=password('MyNewPass4!');
代码解释
请特别注意:在mysql5.7版本中,默认配置了验证密码插件(validate_password),该插件规定用户密码必须包含大小写字母、数字以及特殊符号,并且最低长度为8字符。如果不符合上述要求,则会触发错误提示ERROR 1819 (HY000):Your password does not meet the current policy requirements。例如:
mysql> set password for 'root'@'localhost'=password('1992');
ERROR 1819 (HY000): Your password does not satisfy the current policy requirements
代码解释
通过msyql环境变量可以查看密码策略的相关信息:
mysql> show variables like '%password%';
+---------------------------------------+--------+
|Variable_name|Value|
+---------------------------------------+--------+
|default_password_lifetime|0|
|---|---|
|log_builtin_as_identified_by_password|OFF|
|mysql_native_password_proxy_users|OFF|
|old_passwords|0|
|report_password||
|sha256_password_proxy_users|OFF|
|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|
+---------------------------------------+--------+
14 rows in set (0.01 sec)
#validate_password_policy: 密码策略,默认为MEDIUM策略
#validate_password_dictionary_file: 密码策略文件,策略为STRONG才要
#validate_password_length: 密码最少长度
#validate_password_mixed_case_count: 大小写字符长度,至少个
#validate_password_special_char_count:特殊字符至少1个上述参数是默认策略MEDIUM的密码检规则。
共有以下几种密码策略:策略检查规则
0 or LOW Length
1 or MEDIUM Length; numeric, lowercase/uppercase, and special characters
2 or STRONG Length; numeric, lowercase/uppercase, and special characters; dictionary file
#修改密码策略在/etc/my.cnf文件添加validate_password_policy配置,指定密码策略
# 选择0(LOW),1(MEDIUM),2(STRONG)其中一种,选择2需要提供密码字典文件
validate_password_policy=0
#如果不需要密码策略,添加my.cnf文件中添加如下配置禁用即可:
validate_password = off
代码解释
MySQL官方关于密码安全的规定进行了全面介绍:https://dev.mysql.com/doc/refman/5.7/en/validate-password-options-variables.html#sysvar_validate_password_policy
MySQL官方关于密码安全的规定进行了全面介绍:https://dev.mysql.com/doc/refman/5.7/en/validate-password-options-variables.html#sysvar_validate_password_policy
重新启动mysql服务使配置生效:
systemctl restart mysqld
代码解释
6、添加远程登录用户
#默认只允许root帐户在本地登录,如果要在其它机器上连接mysql,必须修改root允许远程连接,或者添加一个允许远程连接的帐户,为了安全起见,我添加一个新的帐户:
mysql> GRANT ALL PRIVILEGES ON *.* TO 'chengbq'@'%' IDENTIFIED BY 'chengbq0917!' WITH GRANT OPTION;
代码解释
7、配置默认编码为utf8
- 修改/etc/my.cnf配置文件,在[mysqld]下添加编码配置,如下所示:
#在my.cnf配置文件下添加如下
#character_set_server=utf8
#init_connect='SET NAMES utf8'
[root@localhost ~]# vim /etc/my.cnf
# For advice on how to change settings please see
# http://dev.mysql.com/doc/refman/5.7/en/server-configuration-defaults.html
[mysqld]
character_set_server=utf8
init_connect='SET NAMES utf8'
代码解释
重新启动mysql服务,查看数据库默认编码如下所示:
[root@localhost ~]# systemctl restart mysqld
####登录mysql
mysql> show variables like '%char%';
+--------------------------------------+----------------------------+
|Variable_name|Value|
+--------------------------------------+----------------------------+
|character_set_client|utf8|
|---|---|
|character_set_database|utf8|
|character_set_filesystem|binary|
|character_set_results|utf8|
|character_set_server|utf8|
|character_set_system|utf8|
|character_sets_dir|/usr/share/mysql/charsets/|
|validate_password_special_char_count|1|
+--------------------------------------+----------------------------+
9 rows in set (0.01 sec)
mysql> show variables like '%collation%';
+----------------------+-----------------+
|Variable_name|Value|
+----------------------+-----------------+
|collation_connection|utf8_general_ci|
|---|---|
|collation_server|utf8_general_ci|
+----------------------+-----------------+
3 rows in set (0.00 sec)
代码解释
