Linux环境下MySQL问题记录

MySQL数据库的不同版本出错解决办法总结。

腾讯云MySQL

版本:CentOS7

MySQL3.7

Mysql已经在Linux远程正常运行!


现在打开对外网的许可:

首先使用netstat -an | grep 3306命令查看mysql端口的状态,如果是listen说明没有对外进行开放。

那么我们只好修改数据库的配置文件,将数据库的bind注释掉,或者改成允许访问的主机ip

怎么查看mysql的安装位置呢?首先通过which mysql查看mysql的安装位置。然后根据上面显示的目录,通过命令查看配置文件的读取顺序,最后我们自己去查看配置文件。

1
/usr/bin/mysql --verbose --help |grep -A 1 'Default options'

如图显示查到了三个文件,意思是会先去找/etc/my.cnf文件,如果没找到就去找第二个,如果还是没找到就去找第三个。

结果没什么卵用

修改mysql数据库密码策略


最后是创建了一个%,host值。指定别人可以通过123456这个密码访问root用户。

MySQL8.0版本(CentOS安装8.0)

GPG未进行安装

执行安装yum install mysql-community-server 命令之前先进行import命令

1
rpm --import https://repo.mysql.com/RPM-GPG-KEY-mysql-2022

查看service运行状态

1
service mysqld status

查看密码并进行登录,冒号后面都是密码(如果看不到则没有密码)

1
grep "password" /var/log/mysqld.log

先设置一个密码才能修改密码策略

1
ALTER USER 'root'@'localhost' IDENTIFIED BY '要设置的密码';

修改密码策略,修改密码:进入mysql数据库

1
use mysql;

显示密码策略:

1
SHOW VARIABLES LIKE 'validate_password%';

修改过程:

1
2
3
4
set GLOBAL validate_password.length=6;
set GLOBAL validate_password.policy=LOW;
alter user 'root'@'localhost' identified with mysql_native_password by '123456';

修改成功!

没有bind-address>

所以我们的配置文件都只需要自己进行定义?没错,没有就是默认了。

SSH免密登录

ssh实现的过程是:

  1. 在Mac本地创建公钥和私钥
  2. 使用命令将公钥复制到Linux服务器的username/.ssh/authorized_keys文件夹中
  3. 设置Linux相关文件夹的权限

排除的原因:
1、虚拟机防火墙未关 (已经设置永远不开启)
2、没有赋予用户权限 (已经赋予权限,test用户)
3、mysql的配置文件my.cnf未修改 (/etc/my.cnf)

目的是为了让两个数据库都能通过root-123456这个账户在外面进行登录

1
2
3
4
5
use mysql;
update user set authentication_string='' where user='root';
update user set host = '%' where user = 'root';
alter user root identified with mysql_native_password by '123456';
FLUSH PRIVILEGES;

Parallels Ubuntu MySQL

Parallels安装Mysql

版本8.0

命令

1
apt install mysql-server mysql-client

但是我们发现我们查询运行状态的时候显示Unit not found

systemctl status mysql失败

systemctl status mysqld成功

4.12寻找mysql配置文件

1
sudo vim /etc/mysql/mysql.conf.d/mysqld.cnf

阿里云

版本:CentOS7


Linux环境下MySQL问题记录
http://wahoyu.xyz/2023/04/14/MySQLConfig/
作者
Wahoyu
发布于
2023年4月14日
许可协议