官网5.7版本:https://cdn.mysql.com//Downloads/MySQL-5.7/mysql-5.7.29-1.el7.x86_64.rpm-bundle.tar
文件存于百度网盘:链接:https://pan.baidu.com/s/1x0fucIsD36_7agu88Jd2yg
提取码:s4m8
复制这段内容后打开百度网盘手机App,操作更方便哦--来自百度网盘超级会员V3的分享
可以使用xftp上传到Linux中
2.0解压安装包并安装
使用tar命令解压
tar -xvf mysql-5.7.29-1.el7.x86_64.rpm-bundle.tar
安装新版mysql前,需将系统自带的mariadb-lib卸载
rpm -qa|grep mariadb --获取系统mariadb-lib 版本
mariadb-libs-5.5.60-1.el7_5.x86_64
rpm -e --nodeps mariadb-libs-5.5.60-1.el7_5.x86_64 --卸载
为了避免出现权限问题,给mysql解压文件所在目录赋予最大权限
chmod -R 777 mysql
严格按照顺序安装:mysql-community-common-5.7.29-1.el7.x86_64.rpm、mysql-community-libs-5.7.29-1.el7.x86_64.rpm、mysql-community-client-5.7.29-1.el7.x86_64.rpm、mysql-community-server-5.7.29-1.el7.x86_64.rpm这四个包
rpm -ivh mysql-community-common-5.7.29-1.el7.x86_64.rpm
rpm -ivh mysql-community-libs-5.7.29-1.el7.x86_64.rpm
rpm -ivh mysql-community-client-5.7.29-1.el7.x86_64.rpm
rpm -ivh mysql-community-server-5.7.29-1.el7.x86_64.rpm
如果安装过程中出现这个错误就在后面添加 --force --nodeps,这可能是由于yum安装了旧版本的GPG keys造成的
3.0 配置数据库
vim /etc/my.cnf
添加这三行
skip-grant-tables character_set_server=utf8 init_connect='SET NAMES utf8'
skip-grant-tables:跳过登录验证
character_set_server=utf8:设置默认字符集UTF-8
init_connect='SET NAMES utf8':设置默认字符集UTF-8
4.0启动mysql 服务
设置开机启动
systemctl start mysqld.service
启动mysql
mysql
如果报错:
centos8 安装mysql5.7 后,mysql命令登录不成功,报错:mysql: error while loading shared libraries: libncurses.so.5: cannot open shared object file: No such file or directory。按照百度的方法都不成功,应该和系统版本有关,后来自己想到一个方法:yum install libncurses*,完美解决问题。
5.0设置密码和开启远程登录
5.1设置密码
先设置一个简单的密码
update mysql.user set authentication_string=password('bq123456') where user='root';
立即生效
flush privileges;
退出mysql并停止mysql服务
systemctl stop mysqld.service
编辑my.cnf配置文件将:skip-grant-tables这一行注释掉
重启mysql服务
systemctl start mysqld.service
再次登录mysql
mysql -uroot -pbq123456
如果输入其他命令出错,再重设密码
set password=password('bq123456');
5.2设置密码策略(这步可以跳过)
如果想要设置简单一点的密码就要设置密码策略,否则设置简单的密码会出错
查看密码策略
SHOW VARIABLES LIKE 'validate_password%';
1)、validate_password_length 固定密码的总长度;
2)、validate_password_dictionary_file 指定密码验证的文件路径;
3)、validate_password_mixed_case_count 整个密码中至少要包含大/小写字母的总个数;
4)、validate_password_number_count 整个密码中至少要包含阿拉伯数字的个数;
5)、validate_password_policy 指定密码的强度验证等级,默认为 MEDIUM;
设置密码的验证强度等级,设置 validate_password_policy 的全局参数为 LOW
set global validate_password_policy=LOW;
只要设置密码的长度小于 3 ,都将自动设值为 4
set global validate_password_length=4;
5.3开放3306端口
开放端口
firewall-cmd --zone=public --add-port=3306/tcp --permanent
--zone #作用域
--add-port=80/tcp #添加端口,格式为:端口/通讯协议
--permanent #永久生效,没有此参数重启后失效
重启防火墙
firewall-cmd --reload
永久关闭防火墙
systemctl disable firewalld.service
5.4 开启远程登录
grant all privileges on *.* to 'root'@'%' identified by 'bq123456' with grant option;
by后面的就是远程登录密码,远程登录密码可以和用户密码不一样
如果Navicat 无法远程登录vim /etc/my.cnf 中开启skip-grant-tables;
1.如果出现1819错误则设置密码策略
2.如果出现1820(HY000)错误则重新设置,密码
3.远程登录1130错误,则设置远程登录权限:grant all privileges on *.* to 'root'@'%' identified by 'bq123456' with grant option;
mysql 建表1055错误
1.如果是windows系统,则把 MySql 中的my.ini中的sql_mode配置项修改则可,把only_full_group_by项删除,如果是Linux则在my.cnf中
2.如果配置项中没有sql_mode项,通过sql语句修改
查出sql_mode值
select @@sql_mode
将查到的值去掉only_full_group_by项,将其他项添加到my.ini配置文件中
sql-mode=STRICT_TRANS_TABLES,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION
my.ini中的配置项:
sql-mode=STRICT_TRANS_TABLES,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION
3.不修改任何配置文件,但给不需要分组的字段上加上any_value()函数
SELECT any_value(id),value FROM role group by value;