centos7安装mysql5.7

顺序:nginx->mysql->php

wget -i -c http://dev.mysql.com/get/mysql57-community-release-el7-11.noarch.rpm
yum -y install mysql57-community-release-el7-11.noarch.rpm
yum -y install mysql-community-server
yum -y install mysql-community-devel
systemctl restart mysqld
mysqld --initialize

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

mysql -uroot -p
ALTER USER 'root'@'localhost' IDENTIFIED BY '123456';

解决报错

以上报错是说新设置的密码过于简单,解决方式:
//首先按照默认密码格式复杂度更改,在mysql下

ALTER USER 'root'@'localhost' IDENTIFIED BY '@Ssslpk99';

修改MySQL默认策略和密码长度,在mysql下

set global validate_password_policy=0;
set global validate_password_policy=LOW;
set global validate_password_length=1;

改为简单密码,在mysql下

ALTER USER 'root'@'localhost' IDENTIFIED BY '123456';

授权远程登陆,在mysql下

grant all privileges on *.* to 'root'@'%'identified by '123456' with grant option;
FLUSH PRIVILEGES;

grant all privileges on *.* to 'root'@'127.0.0.1'identified by '123456' with grant option;
FLUSH PRIVILEGES;
grant all privileges on *.* to 'root'@'147.103.135.202'identified by '123456' with grant option;
FLUSH PRIVILEGES;

修改mysql5.7最大连接数

1.编辑mysql配置文件

#编辑mysql配置文件
vim /etc/my.cnf

#在[mysqld]下添加 太大影响性能
max_connections=10000

2.编辑mysqld.service配置文件

#编辑/usr/lib/systemd/system/mysqld.service配置文件
vim /usr/lib/systemd/system/mysqld.service

#在尾部添加
LimitNOFILE=65535
LimitNPROC=65535

3.重启mysql服务,使配置生效

systemctl daemon-reload
systemctl restart mysqld.service

4.查询当前最大连接数,在mysql下

#查询最大连接数
show variables like "max_connections"; 
#当前使用连接数
show global status like 'Max_used_connections';

 

卸载安装源自动更新,在shell下

yum remove mysql57-community-release.noarch

初始化数据库,在shell下

mysql_secure_installation

mysql为5.7之前,则会默认启用ONLY_FULL_GROUP_BY SQL模式,MySQL将拒绝选择列表,HAVING条件或ORDER BY列表的查询引用在GROUP BY子句中既未命名的非集合列,也不在功能上依赖于它们。

select @@global.sql_mode

查询出来的值为

ONLY_FULL_GROUP_BY,STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION

去掉ONLY_FULL_GROUP_BY,重新设置值。

set @@global.sql_mode='STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION';

上面的设置是临时的,或者可以在/etc/my.cnf 的【mysqld】下添加

sql_mode=STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION

 

你可能感兴趣的:(服务器)