Centos7.x下安装MySQL5.7(yum安装)

在CentOS中默认安装有MariaDB,这个是MySQL的分支,但为了需要,还是要在系统中安装MySQL,而且安装完成之后可以直接覆盖掉MariaDB。

1、安装mysql

(由于yum源上没有mysql-server。所以必须去官网下载,这里 我们用wget命令,直接获取)

wget -i http://dev.mysql.com/get/mysql57-community-release-el7-10.noarch.rpm

2、安装mysql的依赖包

yum -y install mysql57-community-release-el7-10.noarch.rpm

或者rpm -ivh mysql57-community-release-el7-10.noarch.rpm

3、安装mysql数据库

yum -y install mysql-community-server

4、完成安装,重启mysql

systemctl restart mysqld.service

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

注意:前面那个空格不算密码

5、复制粘贴上边的密码进入数据库

mysql -uroot -p

输入初始密码,此时不能做任何事情,因为MySQL默认必须修改密码之后才能操作数据库修改密码命令:
ALTER USER 'root'@'localhost' IDENTIFIED BY '123';

6、解决报错

以上报错是说新设置的密码过于简单,解决方式:
//首先按照默认密码格式复杂度更改
ALTER USER 'root'@'localhost' IDENTIFIED BY 'Xiejinming@12';

7、查看MySQL完整的初始密码规则

查看MySQL完整的初始密码规则,查看的前提是必须先用ALTER USER命令更改过密码(SHOW VARIABLES LIKE 'validate_password%';),


如何在Centos7下安装MySQL5.7
注:密码的长度是由validate_password_length决定的,而validate_password_length的计算公式是:validate_password_length = validate_password_number_count + validate_password_special_char_count + (2 * validate_password_mixed_case_count)

8、修改MySQL默认策略和密码长度

1)修改密码策
因为当前的密码太复杂不方便后期做实验,所以使用命令修改密码策略两种方式:

下方两种方式随机使用一种执行
mysql> set global validate_password_policy=0;

mysql> set global validate_password_policy=LOW;

注:密码策略分四种
1、OFF(关闭) 2、LOW(低) 3、MEDIUM(中) 4、STRONG(强)

2)修改密码长度
上边改完策略之后我们在改长度 mysql> SET GLOBAL validate_password_length=6;

9、查看密码规则

都改完之后查看密码规则mysql> SHOW VARIABLES LIKE 'validate_password%';

10、改为简单密码

接下来就可以将刚才的复杂密码改为简单的四位的密码了;
ALTER USER 'root'@'localhost' IDENTIFIED BY '123456';

11、卸载安装源自动更新

此时还有一个问题,就是因为安装了Yum Repository,以后每次yum操作都会自动更新,因为当前数据库已安装完成,所以把这个卸载掉:
yum remove mysql57-community-release.noarch

12、初始化数据库

mysql_secure_installation


注:执行完初始化命令后需要输入数据库root用户密码,然后默认如上截图一路回车即可。(以上截图问题也可根据自己实际情况进行选择)

13、授予权限,以便远程工具可以连接

1)切换到mysql数据库:use mysql;

2)授予权限,让任何一台主机都可以使用root账号,密码123456登录

GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY '123456' WITH GRANT OPTION;

3)刷新新权限:flush privileges;

4)查看用户

select user,host,authentication_string 密码 from user;

5)关闭防火墙

查看 | 关闭 | 开启防火墙   systemctl status | stop | start firewalld.service

永久禁用防火墙:systemctl disable firewalld.service

6)使用navicat工具测试链接

14、设置数据库忽略大小写(有些项目需要忽略,不然项目起不来)

在linux系统,默认设置下:

数据库名与表名是严格区分大小写的;
列名与列的别名在所有的情况下均是忽略大小写的;
变量名也是严格区分大小写的;

在windows系统,默认设置下:

都不区分大小写

查看lower_case_table_names的值,0代表区分大小写,1代表不区分大小写。

show Variables like '%case%';

mysql> SHOW VARIABLES LIKE '%case%';
+------------------------------------+-------+
| Variable_name                      | Value |
+------------------------------------+-------+
| lower_case_file_system             | OFF   |
| lower_case_table_names             | 0     |
| validate_password_mixed_case_count | 1     |
+------------------------------------+-------+
3 rows in set (0.01 sec)

mysql> 

解决办法:

1)使用 vi /etc/mysql/my.cnf, 打开mysql 的配置文件,

2)在[mysqld]下加入如下代码:lower_case_table_names=1

注意: 一定要放在 mysqld 节点下 , 放在其他节点下, 会不生效 !!!!

可顺便加下一下配置:

character_set_server=utf8

#新建数据表的默认存储引擎

default-storage-engine=INNODB

max_allowed_packet=128M

max_connections=1000

lower_case_table_names=1

3)设置完后,保存,再重新启动数据库:systemctl restart mysqld.service

4)再次查看lower_case_table_names的值

show Variables like '%case%';

mysql> SHOW VARIABLES LIKE '%case%';
+------------------------------------+-------+
| Variable_name                      | Value |
+------------------------------------+-------+
| lower_case_file_system             | OFF   |
| lower_case_table_names             | 1     |
| validate_password_mixed_case_count | 1     |
+------------------------------------+-------+
3 rows in set (0.01 sec)

mysql> 

 

猜你喜欢

转载自blog.csdn.net/weixin_42162451/article/details/115030822