快速部署使用yum在Linux下进行安装
YUM)
1. 下载MySQL源安装包
wget http://dev.mysql.com/get/mysql57-community-release-el7-8.noarch.rpm
2. 安装
yum localinstall mysql57-community-release-el7-8.noarch.rpm
3.检查mysql源是否安装成功
yum repolist enabled | grep "mysql.*-community.*"
4.修改yum源
vim /etc/yum.repos.d/mysql-community.repo
改变默认安装的mysql版本。比如要安装5.6版本,将5.7源的enabled=1改成enabled=0。然后再将5.6源的enabled=0改成enabled=1即可。
备注:enabled=1表示即将要安装的mysql版本,这个文件也可以不修改,默认安装mysql最高版本
5. 安装MySQL
yum install mysql-community-server
6.启动MySQL并设置开机启动
$ systemctl start mysqld
$ systemctl enable mysqld
$ systemctl daemon-reload
7.端口开放
$ firewall-cmd --zone=public --add-port=3306/tcp --permanent
$ firewall-cmd --reload
8.修改root本地登录密码
1)查看默认密码
grep 'temporary password' /var/log/mysqld.log
2)使用临时密码登录MySQL
$ mysql -uroot -p
3)修改密码(首先需要操作)
mysql> ALTER USER 'root'@'localhost' IDENTIFIED BY 'MyNewPass4!';
或者:
mysql> set password for 'root'@'localhost'=password('MyNewPass4!');
4)查看密码策略
mysql> show variables like '%password%';
9.添加远程登录用户
mysql> GRANT ALL PRIVILEGES ON *.* TO 'caoxiaobo'@'%' IDENTIFIED BY 'Caoxiaobo0917!' WITH GRANT OPTION;
10.使用客户端连接测试即可
常见问题:
1.出现datetime默认值为0000-00-00 00:00:00
原因:mysql5.7 datetime 默认值0000-00-00 00:00:00出错,是因为mysql5.7版本后,sql_mode参数被设置了NO_ZERO_IN_DATE,NO_ZERO_DATE
解决:
临时修改:
mysql> set global sql_mode='ONLY_FULL_GROUP_BY,STRICT_TRANS_TABLES,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION' ;
mysql> set session sql_mode='ONLY_FULL_GROUP_BY,STRICT_TRANS_TABLES,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION' ;
这里是去重:NO_ZERO_IN_DATE,NO_ZERO_DATE
永久修改:
sql_mode=ONLY_FULL_GROUP_BY,STRICT_TRANS_TABLES,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION
或者 修改datetime的默认值
2.
mysql命令gruop by报错this is incompatible with sql_mode=only_full_group_by
默认关掉ONLY_FULL_GROUP_BY!