CentOS7使用rpm安装mysql5.7

第一步、前往mysql官网下载所需的版本

  Mysql5.7的rpm包下载地址为https://dev.mysql.com/get/Downloads/MySQL-5.7/mysql-5.7.26-1.el7.x86_64.rpm-bundle.tar

  下载完成后就上传的CentOS系统上。

第二步、解压安装

1

2

3

[root@youxi2 ~]# mkdir Mysql  //创建一个专门的Mysql目录

[root@youxi2 ~]# tar xf mysql-5.7.16-1.el7.x86_64.rpm-bundle.tar -C Mysql/  //将解压的文件放到Mysql目录下

[root@youxi2 ~]# yum -y install make gcc-c++ cmake bison-devel ncurses-devel libaio libaio-devel net-tools  //安装依赖包

  由于CentOS7开始自带的数据库是mariadb,所以需要卸载系统中的mariadb组件,才能安装mysql的组件

1

2

3

[root@youxi2 ~]# rpm -qa | grep mariadb

mariadb-libs-5.5.60-1.el7_5.x86_64

[root@youxi2 ~]# yum -y remove mariadb-libs

  现在开始安装mysql,由于依赖关系,所以顺序是固定的。

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

[root@youxi2 ~]# rpm -ivh Mysql/mysql-community-common-5.7.16-1.el7.x86_64.rpm

警告:Mysql/mysql-community-common-5.7.16-1.el7.x86_64.rpm: 头V3 DSA/SHA1 Signature, 密钥 ID 5072e1f5: NOKEY

准备中...                          ################################# [100%]

正在升级/安装...

   1:mysql-community-common-5.7.16-1.e################################# [100%]

[root@youxi2 ~]# rpm -ivh Mysql/mysql-community-libs-5.7.16-1.el7.x86_64.rpm

警告:Mysql/mysql-community-libs-5.7.16-1.el7.x86_64.rpm: 头V3 DSA/SHA1 Signature, 密钥 ID 5072e1f5: NOKEY

准备中...                          ################################# [100%]

正在升级/安装...

   1:mysql-community-libs-5.7.16-1.el7################################# [100%]

[root@youxi2 ~]# rpm -ivh Mysql/mysql-community-libs-compat-5.7.16-1.el7.x86_64.rpm

警告:Mysql/mysql-community-libs-compat-5.7.16-1.el7.x86_64.rpm: 头V3 DSA/SHA1 Signature, 密钥 ID 5072e1f5: NOKEY

准备中... ################################# [100%]

正在升级/安装...

1:mysql-community-libs-compat-5.7.1################################# [100%]

[root@youxi2 ~]# rpm -ivh Mysql/mysql-community-client-5.7.16-1.el7.x86_64.rpm

警告:Mysql/mysql-community-client-5.7.16-1.el7.x86_64.rpm: 头V3 DSA/SHA1 Signature, 密钥 ID 5072e1f5: NOKEY

准备中...                          ################################# [100%]

正在升级/安装...

   1:mysql-community-client-5.7.16-1.e################################# [100%]

[root@youxi2 ~]# rpm -ivh Mysql/mysql-community-server-5.7.16-1.el7.x86_64.rpm  //之后安装就成功了

警告:Mysql/mysql-community-server-5.7.16-1.el7.x86_64.rpm: 头V3 DSA/SHA1 Signature, 密钥 ID 5072e1f5: NOKEY

准备中...                          ################################# [100%]

正在升级/安装...

   1:mysql-community-server-5.7.16-1.e################################# [100%]

  第三步、启动mysql并设置开机自启

1

2

3

4

5

6

7

8

9

10

11

12

[root@youxi2 ~]# systemctl start mysqld

[root@youxi2 ~]# systemctl enable mysqld

[root@youxi2 ~]# systemctl status mysqld

● mysqld.service - MySQL Server

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

   Active: active (running) since 日 2019-06-02 12:11:34 CST; 45s ago

 Main PID: 7840 (mysqld)

   CGroup: /system.slice/mysqld.service

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

 

6月 02 12:11:26 youxi2 systemd[1]: Starting MySQL Server...

6月 02 12:11:34 youxi2 systemd[1]: Started MySQL Server.

第四步、获取mysql临时密码,设置mysql的root用户密码

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

[root@youxi2 ~]# grep "password" /var/log/mysqld.log  //前往日志文件查找临时密码

2019-06-02T04:11:28.935057Z 1 [Note] A temporary password is generated for root@localhost: zS+u&ro49wbo

[root@youxi2 ~]# mysql -uroot -p"zS+u&ro49wbo"

mysql: [Warning] Using a password on the command line interface can be insecure.

Welcome to the MySQL monitor.  Commands end with ; or \g.

Your MySQL connection id is 2

Server version: 5.7.16

 

Copyright (c) 2000, 2016, Oracle and/or its affiliates. All rights reserved.

 

Oracle is a registered trademark of Oracle Corporation and/or its

affiliates. Other names may be trademarks of their respective

owners.

 

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

//可以看到设置简单的密码是会报错的,具体原因看最后的扩展

mysql> alter user 'root'@'localhost' identified by '123456';

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

mysql> alter user 'root'@'localhost' identified by 'root1234';

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

mysql> alter user 'root'@'localhost' identified by 'root1234ABC';

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

mysql> alter user 'root'@'localhost' identified by 'root1234ABCD!@#$';

Query OK, 0 rows affected (0.00 sec)

mysql> flush privileges;

Query OK, 0 rows affected (0.01 sec)

mysql> exit

Bye

  修改密码出来使用“alter user 'root'@'localhost' identified by 'root1234ABCD!@#$';”,也可以使用“set password for root@localhost=password('root1234ABCD!@#$');”

第五步、测试

  由于有特殊符号,必须用引号包裹密码

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

[root@youxi2 ~]# mysql -u root -p'root1234ABCD!@#$'

mysql: [Warning] Using a password on the command line interface can be insecure.

Welcome to the MySQL monitor.  Commands end with ; or \g.

Your MySQL connection id is 3

Server version: 5.7.16 MySQL Community Server (GPL)

 

Copyright (c) 2000, 2016, Oracle and/or its affiliates. All rights reserved.

 

Oracle is a registered trademark of Oracle Corporation and/or its

affiliates. Other names may be trademarks of their respective

owners.

 

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

 

mysql>

 

扩展:如果想要设置简单密码概如何操作?

  有两种方法,一种在mysql里使用命令修改,一种直接修改配置文件。

  在mysql里使用命令修改的办法:

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

40

41

42

43

44

45

46

47

48

49

50

51

52

53

54

55

56

57

58

59

60

[root@youxi2 ~]# mysql -u root -p'root1234ABCD!@#$'

mysql: [Warning] Using a password on the command line interface can be insecure.

Welcome to the MySQL monitor.  Commands end with ; or \g.

Your MySQL connection id is 3

Server version: 5.7.16 MySQL Community Server (GPL)

 

Copyright (c) 2000, 2016, Oracle and/or its affiliates. All rights reserved.

 

Oracle is a registered trademark of Oracle Corporation and/or its

affiliates. Other names may be trademarks of their respective

owners.

 

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

 

mysql> select @@validate_password_policy;  //这个参数是密码复杂程度

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

| @@validate_password_policy |

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

| MEDIUM                     |

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

1 row in set (0.02 sec)

 

mysql> select @@validate_password_length;  //这个参数是密码长度

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

| @@validate_password_length |

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

|                          8 |

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

1 row in set (0.00 sec)

mysql> set global validate_password_policy=0;  //global全局的

Query OK, 0 rows affected (0.02 sec)

 

mysql> set global validate_password_length=1;

Query OK, 0 rows affected (0.00 sec)

 

mysql> set password for root@localhost=password('123');

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

mysql> set password for root@localhost = password('1234');  //设置密码

Query OK, 0 rows affected, 1 warning (0.00 sec)

 

mysql> flush privileges;  //刷新

Query OK, 0 rows affected (0.00 sec)

 

mysql> exit  //退出

Bye

[root@youxi2 ~]# mysql -uroot -p1234

mysql: [Warning] Using a password on the command line interface can be insecure.

Welcome to the MySQL monitor. Commands end with ; or \g.

Your MySQL connection id is 4

Server version: 5.7.16 MySQL Community Server (GPL)

 

Copyright (c) 2000, 2016, Oracle and/or its affiliates. All rights reserved.

 

Oracle is a registered trademark of Oracle Corporation and/or its

affiliates. Other names may be trademarks of their respective

owners.

 

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

 

mysql>

  说明:1.validate_password_policy复杂度级别:0表示密码达到长度即可;1表示密码需达到长度,还需有数字、大小写字母(可以单一可以混合)以及特殊字符;2表示密码需达到长度,还需数字、大小写字母(可以单一可以混合)以及特殊字符字典文件。MEDIUM是中等,也就是1。

     2.validate_password_length其实是一个动态的值,它的最小值等于validate_password_number_count+validate_password_special_char_count+(2*validate_password_mixed_case_count),而这三个参数分别对应密码中数字、特殊字符、大小写字母的最小数量。我操作时设置了validate_password_length=1,实际再次读取validate_password_length的值是4。

1

2

3

4

5

6

7

mysql> select @@validate_password_length;

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

| @@validate_password_length |

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

|                          4 |

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

1 row in set (0.00 sec)

  直接修改配置文件的办法:

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

40

[root@youxi2 ~]# vim /etc/my.cnf

validate-password=OFF  //在[mysqld]模块内添加,将validate_password插件关闭

[root@youxi2 ~]# systemctl restart mysqld  //重启mysqld服务

[root@youxi2 ~]# mysql -uroot -p1234    

mysql: [Warning] Using a password on the command line interface can be insecure.

Welcome to the MySQL monitor.  Commands end with ; or \g.

Your MySQL connection id is 2

Server version: 5.7.16 MySQL Community Server (GPL)

 

Copyright (c) 2000, 2016, Oracle and/or its affiliates. All rights reserved.

 

Oracle is a registered trademark of Oracle Corporation and/or its

affiliates. Other names may be trademarks of their respective

owners.

 

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

 

mysql> set password for root@localhost=password('1');  //validate_password插件关闭后密码长度只需大于等于1即可,复杂度没有要求

Query OK, 0 rows affected, 1 warning (0.00 sec)

 

mysql> flush privileges;  //刷新

Query OK, 0 rows affected (0.00 sec)

 

mysql> exit  //退出

Bye

[root@youxi2 ~]# mysql -uroot -p1

mysql: [Warning] Using a password on the command line interface can be insecure.

Welcome to the MySQL monitor.  Commands end with ; or \g.

Your MySQL connection id is 3

Server version: 5.7.16 MySQL Community Server (GPL)

 

Copyright (c) 2000, 2016, Oracle and/or its affiliates. All rights reserved.

 

Oracle is a registered trademark of Oracle Corporation and/or its

affiliates. Other names may be trademarks of their respective

owners.

 

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

 

mysql>

  注意:Mysql5.7是自带validate_password插件,关闭后对密码没有复杂度要求,只需密码长度大于等于1。

   建议:/etc/my.cnf中将默认字符集设置为utf8,即添加一行character_set_server=utf8,然后重启mysqld

你可能感兴趣的:(CentOS7使用rpm安装mysql5.7)