Linux安装mysql各种错误
前言服务器搭建mysql.修改临时密码,授权和禁止远程登录访问。环境操作系统 Linux centOS 8.3.1 mysql 版本 MySQL 5.7.301、下载并安装官方的 yum repository (新建了mysql文件夹)wget -i -c http://dev.mysql.com/get/mysql57-community-release-el7-10.
前言
服务器搭建mysql.修改临时密码,授权和禁止远程登录访问。
注意:我安装了 mysql 5.7 和 MySQL 8 ,有些不重要的截图可能版本对不上,安装过程遇到的错误以罗列完全
环境
操作系统 Linux centOS 8.3.1
1、下载并安装官方的 yum repository (新建了mysql文件夹)
根据系统选择适合你的版本
链接: https://dev.mysql.com/downloads/mysql/.
选择 install Using Yum安装,点击Download Now查看下载链接
复制rpm路径
拼接复制的路径做为下载地址
wget https://dev.mysql.com/get/MySQL版本rpm路径
mysql8.0 版本
wget https://dev.mysql.com/get/mysql80-community-release-el8-1.noarch.rpm
MySQL5.7 版本
wget -i -c http://dev.mysql.com/get/mysql57-community-release-el7-10.noarch.rpm
2、安装下载过来的文件(yum repository)
yum -y install mysql80-community-release-el8-1.noarch
上面这两步应该不会有问题,有问题看看是不是命令敲错,或者网不好
3、进入正题:yum安装mysql
yum -y install mysql-community-server
可能出现如下错误
解决办法
①、输入 yum module disable mysql 命令
②、输入 yum -y install mysql-community-server命令重新安装服务(图没有截全)
4, 启动mysql
centos 版本过低的话可能没有 systemctl 命令
systemctl start mysqld
# 或
service mysqld start
mysqld 服务相关命令
systemctl start mysqld
systemctl stop mysqld
systemctl restart mysqld
systemctl status mysqld
5 查看是否启动成功
systemctl status mysqld 出现如下表示启动成功
6 、查看MySQL版本号
mysql -V 大写V
7、查看MySQL初始密码
grep "password" /var/log/mysqld.log
8 、进入数据库
mysql -uroot -p 输入密码的,密码隐式的,看不到,正确输入就行或者将上面保存的初始密码复制进去,如下数据库登陆成功
9、修改密码
① mysql 8.0
ALTER USER 'root'@'localhost' IDENTIFIED BY 'xxxxxx';
xxxxxx设置密码,有大小写字母数字,MySQL也可以设置密码不区分大小写,想了解的可以去网上找找。
② mysql 5.7
alter user'root'@'localhost' identified with mysql_native_password by 'xxxxxx';
解决密码策略办法
如果你密码已经改乱了,进不去mysql, 在 /etc/my.cnf 文件最后加入skip-grant-tables,跳过数据库权限验证,systemctl restart mysqld 重启服务,无需密码进入 mysql
① 、mysql 8.0 查看密码策略并加以修改
update user set authentication_string='' where user='root'; # 必须执行,否则提示需要重置密码
flush privileges;
SHOW VARIABLES LIKE 'validate_password%'; # 查看密码策略。 默认 MEDIUM
# set global validate_password.length=4; # 将密码位数设置为4
set global validate_password.policy=LOW; # 密码策略修改为LOW,原值为MEDIUM
alter user 'root'@'localhost' identified by '123456'; # 修改成功,不建议设置这莫简单
flush privileges;
②、mysql 5.7
mysql -u root -p
use mysql;
update user set authentication_string = password("xxxxxx") where user="root";
flush privileges; //刷新系统权限表
10、 退出登陆,删除 /etc/my.cnf 中的 skip-grant-tables(如果你上面添加的话),systemctl restart mysqld 重启服务,使用修改的密码登陆MySQL
下面为需要远程登录遇到的一些问题以及解决办法
11、本地访问Linux服务器mysql,以 SQLyog 为例。
注意这块需要开启云服务器端口3306
下面错误参考 https://blog.csdn.net/qq_41538097/article/details/106905416 原因就是,sqlyog 和 mysql 版本密码校验规则不匹配
填写正确的连接信息,服务器禁止远程连接。错误如图
连接上服务器MySQL,输入如下图命令打开系统权限表user.
可以发现权限表 user 中 roo t用户 host 为 localhost
解决方法
① 你可以直接修改当前表中的 user 所对应的 host 为 %,或者新建用户
update user set host ='%' where user='root';
root用户登录,本地连接成功
12、 取消远程登录权限
直接修改系统用户 user 表的 host,将需要修改的用户的 host 改为 localhost 或者删除,以root用户为例
delete user where user='root' and host='%';
如图,连接失败,以前在服务器搭建MySQL,也没遇到这么多错误,这次遇到这莫多,顺便做个记录,方便以后安装时再出问题。
更多推荐
所有评论(0)