@
目录- 1. 自定义安装 mysql 参考链接 ERROR 2002 / ERROR 1045 / ERROR 1054 / ERROR 1290
- 2. 关于登录 mysql 出现的密码过于简单的问题 ERROR 1045 (28000) / ERROR 1820 / ERROR 1819 / ERROR 1193
- 3. 自定义路径安装mysql 的/etc/my.cnf 配置模板
- 4. 卸载删除mysql
- 报错解决参考链接
下面是笔者拙劣的测试记录,安装mysql的精华版教程,如下所示:
Linux (Centos 7) 自定义目录安装mysql - 精华版:传送门
1. 自定义安装 mysql 参考链接 ERROR 2002 / ERROR 1045 / ERROR 1054 / ERROR 1290
上面链接报错 pid 文件问题,解决方法补充链接:
Starting MySQL. ERROR! The server quit without updating PID file
1.1、 ERROR 2002
报错解决方法:
ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/tmp/mysql.sock' (2)
(这是由于/etc/my.cnf 文件内,没有填写 [client] 配置)
1.2、 ERROR 1045
报错解决方法:
ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: YES)
需要配置mysql 用户密码
密码修改命令:(下面的1 和 2 两条命令都要输入)
- 远程用户密码修改命令:
mysql> ALTER USER 'root'@'localhost' IDENTIFIED BY '123456';
- mysql 修改指定用户的密码:
mysql> use mysql;
mysql> update user set password=password("123456") where user="root";
如果报如下错误:
ERROR 1054(42S22) Unknown column 'password' in 'field list'
参考原因: 5.7版本下的mysql数据库下已经没有password这个字段了,password字段改成了authentication_string (但是我的mysql并不是 5.7 以下版本,所以这个说法有问题!而是包括了 5.7 版本,具体的可以帮忙写在评论区)
- 下面命令适用于 mysql 5.7版本及以下版本
mysql> use mysql;
mysql> update user set authentication_string=password("123456") where user="root";
还有如果出现如下报错问题:
ERROR 1290 (HY000): The MySQL server is running with the --skip-grant-tables option so it cannot execute this statement
(请忽略它,直接输入如下命令)
刷新MySQL权限相关的表,无论上面如何操作,下面的命令都必须要输入,刷新一下!
mysql>
flush privileges;
mysql>
quit
shell 命令:
vi /etc/my.cnf
注释掉 skip-grant-table
重启 mysqld 服务
service mysqld restart
使用 mysql -uroot -p
验证密码是否配置为 123456 ,如果登录成功那么,问题解决。
2. 关于登录 mysql 出现的密码过于简单的问题 ERROR 1045 (28000) / ERROR 1820 / ERROR 1819 / ERROR 1193
ERROR 1820 (HY000): You must reset your password using ALTER USER statement before executing this statement.
报错 ERROR 1045 (28000) / 1820 的解决方法(查看如下蓝色字体链接):
下面这两个链接,被笔者我整合了两份文章,虽然下面重复写,但也懒得改了
2.2. Centos 7 - 第一次登陆 Mysql 数据库 修改密码问题 ERROR 1045 (28000) - 临时生效方法
2.3. Centos 7 mysql 5.x / mysql 8.x 出现 mysql 服务重启后,validate_password 的配置失效问题 - 永久生效方法
2.1 Mysql 初次修改密码,因密码太弱报错的多种解决方法如下:
ERROR 1819 (HY000): Your password does not satisfy the current policy requirements
报错 1819
的解决方法:
使用复杂密码,Mysql 数据库默认的密码策略是要包含数字、字母及特殊字符;
如果只是测试用,不想用那么复杂的密码,可以修改默认策略,即validate_password_policy
(以及validate_password_length
等相关参数),使其支持简单密码的设定,具体方法可以参考:
1. 如何修改 Mysql 的密码策略:传送门
vi /etc/my.cnf
必须将原来的 skip-grant-table
加入到该配置文件内,否则下面的操作无从谈起。(开启 mysql 数据库的 免密码验证模式)
进入 Mysql 服务器 mysql> 使用查看 Mysql 密码策略命令:
mysql>
SHOW VARIABLES LIKE 'validate_password%';
如果报错:看下面传送门解决方法链接
特别注意如下这个链接方法很有问题
ERROR 1193 (HY000): Unknown system variable 'validate_password_policy': 传送门
(一个非常奇妙的是,用了这个方法你后面就用不了,特别注意这个算是填了一个坑,但是引入了更大的坑,下面的修改操作无从用起,因为最终都会失效,重启mysql服务会导致失效的)
2.2 重启mysql 服务后,配置就会失效 - 临时生效方法
修改 Mysql 密码策略安全等级命令
mysql>
set global validate_password_policy=LOW;
每条命令使用后最好都用
设置限制 Mysql 密码长度为 6 个字符(当然这个长度可以自己选择,但是只有配置了密码策略为 LOW 才可以,仅仅只检查密码长度)
mysql>
set global validate_password_length=6;
刷新权限
mysql>
flush privileges;
mysql>
SHOW VARIABLES LIKE 'validate_password%';
查看下是否成功!
退出mysql
mysql>
quit
或者
mysql>
exit
如果这样还是出现问题,如
ERROR 1820 (HY000): You must reset your password using ALTER USER statement before executing this statement.
那么很有可能是重启mysql服务,导致配置失效了,参考如下解决方法链接:
2.3 配置永久生效, 解决 ERROR 1820 问题
2.3.1 永久生效解决方法链接:
Centos 7 mysql 5.x / mysql 8.x 出现 mysql 服务重启后,validate_password 的配置失效问题
2.3.2 解决 ERROR 1820
在 mysql 终端 输入命令:
mysql> ALTER USER 'root'@'localhost' IDENTIFIED BY '123456';
3. 自定义路径安装mysql 的/etc/my.cnf 配置模板
这里附上今后可能会用到的配置信息
(下面只是笔者找来的示例,应该是windows系统的 mysql 配置文件的模板)
示例自定义目录为 /home/work/
Linux 版本 (注意这里的配置可是有区分下划线间隔和非下划线的,-
和 _
的,可是关乎配置能否生效或是报错导致mysql服务无法重启和启动的)
[mysqld]
# 设置mysql客户端连接服务端时默认使用的端口
port=3306
# 设置mysql的安装目录
basedir=/home/work/mysql
# 设置mysql数据库的数据的存放目录
datadir=/home/work/mysql/data
socket=/home/work/mysql/mysql.sock
log-error=/home/work/mysql/log/mysql.log
pid-file=/home/work/mysql/mysql.pid
tmpdir=/home/work/mysql/tmp
# 允许最大连接数
max_connections=200
# 允许连接失败的次数。这是为了防止有人从该主机试图攻击数据库系统
max_connect_errors=10
# 服务端使用的字符集默认为UTF8
character-set-server=utf8mb4
collation-server=utf8mb4_general_ci
init-connect='SET NAMES utf8mb4'
# 创建新表时将使用的默认存储引擎
default-storage-engine=INNODB
# 默认使用“mysql_native_password”插件认证
# default_authentication_plugin=mysql_native_password
# 在 mysql 启动时载入插件,如果报错缺失 validate-password 插件的话
plugin-load-add=validate_password.so
# 为阻止该插件在运行时被删除,设置为永久强制使用
validate-password=FORCE_PLUS_PERMANENT
# 配置 弱化密码策略 如 123456
validate_password_length=6
validate_password_policy=0
[mysql]
# 设置mysql客户端默认字符集
default-character-set=utf8mb4
[client]
# 设置mysql客户端连接服务端时默认使用的端口
port=3306
socket=/home/work/mysql/mysql.sock
default-character-set=utf8mb4
配置理解链接:
1. init-connect='SET NAMES utf8' 的作用
2. mysql通过my.cnf修改默认字符集为utf-8的方法和注意事项 character-set-server=utf8
3. 关于下划线变量和非下划线变量的配置理解,为什么 character-set-server 不可以变成 character_set_server的启发理解
Windows 版本(这个随便看看就好了)
[mysqld]
# 设置mysql客户端连接服务端时默认使用的端口
port=3306
# 设置mysql的安装目录
basedir=D:\Java\mysql-8.0.12-winx64
# 设置mysql数据库的数据的存放目录
datadir=D:\Java\mysql-8.0.12-winx64\data
# 允许最大连接数
max_connections=200
# 允许连接失败的次数。这是为了防止有人从该主机试图攻击数据库系统
max_connect_errors=10
# 服务端使用的字符集默认为UTF8
character-set-server=utf8
collation-server=utf8_general_ci
init-connect='SET NAMES utf8'
# 创建新表时将使用的默认存储引擎
default-storage-engine=INNODB
# 默认使用“mysql_native_password”插件认证
default_authentication_plugin=mysql_native_password
[mysql]
# 设置mysql客户端默认字符集
default-character-set=utf8
[client]
# 设置mysql客户端连接服务端时默认使用的端口
port=3306
default-character-set=utf8
4. 卸载删除mysql
因为安装mysql 是一个文件夹形式,所以只要删除了所有关联的mysql目录(文件夹)就可以删除mysql了。
4.1 删除所有与mysql关联的目录
查找与 mysql 关联的目录命令如下:
find / -name mysql
示例如下:
重点是如下的目录,出现权限不够问题,不用理会。
find: ‘/run/user/1000/gvfs’: 权限不够
/var/lib/mysql
/var/lib/mysql/mysql
/usr/lib64/mysql
/usr/share/mysql
删除关联的目录命令
rm -rf /var/lib/mysql
rm -rf /var/lib/mysql/mysql
rm -rf /usr/lib64/mysql
rm -rf /usr/share/mysql
报错解决参考链接
1. mysql, mysqladmin, mysqld之间的区别: 传送门
2. ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: YES)
3. ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using passwor
4. Centos7解决MySQL登录ERROR 1045 (28000): Access denied for user ‘‘@‘localhost‘ (using passwor)问题
标签:1045,自定义,ERROR,2002,密码,报错,mysql,password From: https://www.cnblogs.com/Loki-Severus/p/17252657.html