mysql5.7 安装

官方地址:

https://dev.mysql.com/downloads/mysql/

安装mysql源

#yum localinstall mysql57-community-release-el7-{version-number}.noarch.rpm

$ yum localinstall http://dev.mysql.com/get/mysql57-community-release-el7-7.noarch.rpm

安装mysql

$ yum install mysql-community-server

安装mysql的开发包

$ yum install mysql-community-devel

查看mysql状态

systemctl status mysqld.service

● mysqld.service - MySQL Server

   Loaded: loaded (/usr/lib/systemd/system/mysqld.service; enabled; vendor preset: disabled)

   Active: inactive (dead)

     Docs: man:mysqld(8)

           http://dev.mysql.com/doc/refman/en/using-systemd.html

启动MySQL

$ systemctl start mysqld.service

● mysqld.service - MySQL Server

   Loaded: loaded (/usr/lib/systemd/system/mysqld.service; enabled; vendor preset: disabled)

   Active: active (running) since Mon 2018-04-16 01:47:59 UTC; 5s ago

     Docs: man:mysqld(8)

           http://dev.mysql.com/doc/refman/en/using-systemd.html

  Process: 17327 ExecStart=/usr/sbin/mysqld --daemonize --pid-file=/var/run/mysqld/mysqld.pid $MYSQLD_OPTS (code=exited, status=0/SUCCESS)

  Process: 17256 ExecStartPre=/usr/bin/mysqld_pre_systemd (code=exited, status=0/SUCCESS)

 Main PID: 17329 (mysqld)

   CGroup: /docker/1391c87e0974ca70633404d8eb5ef54f6d2e443d84db634a224cb67fb26cc83d/system.slice/mysqld.service

           └─17329 /usr/sbin/mysqld --daemonize --pid-file=/var/run/mysqld/my...

           ‣ 17329 /usr/sbin/mysqld --daemonize --pid-file=/var/run/mysqld/my...

Apr 16 01:47:56 1391c87e0974 systemd[1]: Starting MySQL Server...

Apr 16 01:47:59 1391c87e0974 systemd[1]: Started MySQL Server.

获取mysql默认生成的密码

$ grep 'temporary password' /var/log/mysqld.log

2018-04-16T01:47:56.993269Z 1 [Note] A temporary password is generated for root@localhost: 2xbJEddd7f;3

修改密码

$ mysql -u root -p

Enter password:输入上面的密码,进入mysql

修改

mysql> ALTER USER 'root'@'localhost' IDENTIFIED BY 'root';

ERROR 1819 (HY000): Your password does not satisfy the current policy requirements

这个密码一定要足够复杂,不然会提示密码不合法

这个其实与validate_password_policy的值有关。

validate_password_policy有以下取值:

PolicyTests Performed

0 or LOWLength

1 or MEDIUMLength; numeric, lowercase/uppercase, and special characters

2 or STRONGLength; numeric, lowercase/uppercase, and special characters; dictionary file

默认是1,即MEDIUM,所以刚开始设置的密码必须符合长度,且必须含有数字,小写或大写字母,特殊字符。

有时候,只是为了自己测试,不想密码设置得那么复杂,譬如说,我只想设置root的密码为123456。

必须修改两个全局参数:

首先,修改validate_password_policy参数的值

mysql> set global validate_password_policy=0;

Query OK, 0 rows affected (0.00 sec)

这样,判断密码的标准就基于密码的长度了。这个由validate_password_length参数来决定

mysql> select @@validate_password_length;

+----------------------------+

| @@validate_password_length |

+----------------------------+

|                          8 |

+----------------------------+

1 row in set (0.00 sec)

validate_password_length参数默认为8,它有最小值的限制,最小值为:

validate_password_number_count

+ validate_password_special_char_count

+ (2 * validate_password_mixed_case_count)

其中,validate_password_number_count指定了密码中数据的长度,validate_password_special_char_count指定了密码中特殊字符的长度,validate_password_mixed_case_count指定了密码中大小字母的长度

这些参数,默认值均为1,所以validate_password_length最小值为4,如果你显性指定validate_password_length的值小于4,尽管不会报错,但validate_password_length的值将设为4

如:

mysql> set global validate_password_length=1;

Query OK, 0 rows affected (0.00 sec)

mysql> select @@validate_password_length;

+----------------------------+

| @@validate_password_length |

+----------------------------+

|                          4 |

+----------------------------+

1 row in set (0.00 sec)

如果修改了validate_password_number_count,validate_password_special_char_count,validate_password_mixed_case_count中任何一个值,则validate_password_length将进行动态修改。

以上验证的前提是validate_password插件必须已经安装,MySQL5.7是默认安装的

mysql允许远程访问:

给192.168.1.100 权限访问

mysql> GRANT ALL PRIVILEGES ON *.* TO 'root'@'192.168.1.100' IDENTIFIED BY 'root用户的密码' WITH GRANT OPTION;

给任意IP 访问

mysql> GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY 'root用户的密码' WITH GRANT OPTION;

修改生效

mysql> flush privileges;

相关推荐