centos 7 安装 mysql5.7【openCloudOS 安装 mysql】
原文:https://blog.csdn.net/dengfengan/article/details/105115349
第一步:下载MySQL安装
[root@steel home]# cd /home/data
[root@steel data]# ls
[root@steel data]# wget https://dev.mysql.com/get/mysql57-community-release-el7-11.noarch.rpm
-bash: wget: 未找到命令
[root@steel data]# yum -y install wget
(如果失败,执行:curl -o /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo ,再重试即可)
下载完在 data 目录会多一个文件:mysql57-xxx的文件,这个就是mysql安装源
安装mysql安装源
[root@steel data]# yum -y localinstall mysql57-community-release-el7-11.noarch.rpm
第二步,在线安装MySQL
[root@steel data]# yum -y install mysql-community-server
【如果使用的是腾讯的 openCloudOS 系统,在执行这句命令之前,先执行:yum -y module disable mysql】
(如果失败,执行:rpm --import https://repo.mysql.com/RPM-GPG-KEY-mysql-2022 ,然后再重试)
第三步,启动MySQL服务
[root@steel data]# systemctl start mysqld
第四步,设置开机启动
[root@steel data]# systemctl enable mysqld
[root@steel data]# systemctl daemon-reload
第五步,修改root登录密码
mysql安装完成之后,会在/var/log/mysqld.log文件中给root生成了一个临时的默认密码。
[root@steel data]# cat /var/log/mysqld.log
复制此密码,使用此密码登录root 【注意:这里最好使用 -u 中间加空格的方式来输入账号,-p 空格,来输入密码】
修改密码, mysql5.7默认密码策略要求密码必须是大小写字母数字特殊字母的组合,至少8位
mysql> ALTER USER 'root'@'localhost' IDENTIFIED BY 'Steel1988#';
第六步,设置允许远程登录
mysql> GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY 'Steel1988#' WITH GRANT OPTION;
第七步,exit; 退出
第八步,防火墙开放3306端口
[root@steel data]# firewall-cmd --zone=public --add-port=3306/tcp --permanent
success
[root@steel data]# firewall-cmd --reload
success
firewall-cmd --state (查看防火墙是否启动)
firewall-cmd --list-ports(查看开放的端口)【开启了某个端口,要查看前,需要重启防火墙才可以看到】
第九步,配置mysql默认编码为utf-8(最好改成 utf8mb4)
修改/etc/my.cnf配置文件,在[mysqld]下添加编码配置
character_set_server=utf8mb4
collation_server=utf8mb4_unicode_ci
init_connect='SET NAMES utf8mb4'
:wq保存退出
第十步,重启MySQL
[root@steel data]# systemctl restart mysqld
第十一步,登录root用户查看编码
mysql> show variables like '%character%';
第十二步,使用可视化工具测试远程连接
结束。
=== 使用 mysql 的分组 group by 操作报:=====
Expression #1 of SELECT list is not in GROUP BY clause and contains nonaggregated column 'house.a.id' which is not functionally dependent on columns in GROUP BY clause; this is incompatible with sql_mode=only_full_group_by
直接在 linux 中:
vi /etc/my.cnf
然后找 sql_mode ,如果有,去掉 ONLY_FULL_GROUP_BY ,保存重启 mysql 即可;如果没有,在 [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
然后同样保存重启 mysql 即可