Centos7.x下安装MySQL5.7(yum安装)
Posted 青春无限坑!
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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%';),
注:密码的长度是由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>
以上是关于Centos7.x下安装MySQL5.7(yum安装)的主要内容,如果未能解决你的问题,请参考以下文章