1. 环境
CentOS Linux release 7.5.1804 点击下载
5.7.22 MySQL Community Serve 点击下载
2.卸载MariaDB
从 CentOS 7 系统开始,MariaDB 成为 yum 源中默认的数据库安装包,要先卸载MariaDB ,否则会有冲突。
#检查 MariaDB 是否安装
rpm -qa|grep mariadb
#卸载全部 MariaDB 相关
rpm -e --nodeps mariadb-libs-5.5.56-2.el7.x86_64
如下图
3.解压MySql RPM包
tar -xvf mysql-5.7.22-1.el7.x86_64.rpm-bundle.tar
4.安装
请按一下以下顺序安装
rpm -ivh mysql-community-common-5.7.22-1.el7.x86_64.rpm
rpm -ivh mysql-community-libs-5.7.22-1.el7.x86_64.rpm
rpm -ivh mysql-community-client-5.7.22-1.el7.x86_64.rpm
rpm -ivh mysql-community-server-5.7.22-1.el7.x86_64.rpm
若出现以下错误信息
请执行下面两行命令
yum install perl
yum install -y net-tools
#yum install perl-JSON.noarch
#yum install "perl(Data::Dumper)"
5.启动mySql
注意:CentOS7 的启动方式和以前不一样,CentOS7 使用了 systemctl
#查看mysql状态
systemctl status mysqld
#启动mysql
systemctl start mysqld
6.登陆数据库
MySQL5.7.6 之后会在启动 mysql 进程的时候生成一个用户密码,首次登陆需要这个密码才行。密码保存在 mysql 进程的日志里,即(/var/log/mysqld.log)
#查找root的登陆密码
cat /var/log/mysqld.log | grep password
#root登陆
mysql -uroot -p
#修改Mysql密码策略,默认是1,即MEDIUM
set global validate_password_policy=0;
#指定了密码中数据的长度
set global validate_password_length=1;
#修改密码
alter user root@localhost identified by '123456';
#使设置立即生效
flush privileges;
7.设置允许远程访问
#允许root远程登陆
grant all privileges on *.* to root@"%" identified by '123456' with grant option;
如果执行失败执行下面的命令
#修改Mysql密码策略,默认是1,即MEDIUM
set global validate_password_policy=0;
#指定了密码中数据的长度
set global validate_password_length=1;
8.防火墙设置
#远程访问 MySQL,需要开放 3306 端口:
firewall-cmd --permanent --zone=public --add-port=3306/tcp
firewall-cmd --permanent --zone=public --add-port=3306/udp
firewall-cmd --reload
#如果是 CentOS 7,需要将 MySQL 服务加入防火墙,然后重启防火墙:
firewall-cmd --zone=public --permanent --add-service=mysql
systemctl restart firewalld
#防火墙相关:
systemctl status firewalld #查看防火墙状态
systemctl start firewalld #打开防火墙
systemctl stop firewalld #关闭防火墙
systemctl restart firewalld #重启防火墙
9.mysql的sql_mode 模式修改
#错误信息
which is not functionally dependent on columns in GROUP BY clause; this is incompatible with sql_mode=only_full_group_by
select @@sql_mode;
修改/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
修改mysql5.7怎么修改最大连接数
#查看最大连接数
show variables like '%max_connections%'
#修改/etc/my.cnf 设置
max_connections=1000
#你也可以直接在 mysql 中设置, 这个设置立即生效,但不会改配置文件,也就是说重启 mysql 后恢复成配置文件中的配置值(没有则恢复成默认值 )
set global max_connections=1000;
#设置最大连接数、配置文件my.cnf的mysqld加入这一行
max_connections=1000