Centos7-tar包自定义安装mysql -ERROR 2002/ERROR 1045/ERROR 1054/ERROR 1290/ERROR 1820/ERROR 1819/ERROR 1193 梦里梦外; 2024-04-01 09:19 21阅读 0赞 #### 目录 #### * 1. 自定义安装 mysql 参考链接 ERROR 2002 / ERROR 1045 / ERROR 1054 / ERROR 1290 * * 1.1、 \`ERROR 2002\` 报错解决方法: * 1.2、 \`ERROR 1045\` 报错解决方法: * 2. 关于登录 mysql 出现的密码过于简单的问题 ERROR 1045 (28000) / ERROR 1820 / ERROR 1819 / ERROR 1193 * * 2.1 Mysql 初次修改密码,因密码太弱报错的多种解决方法如下: * 2.2 重启mysql 服务后,配置就会失效 - 临时生效方法 * 2.3 配置永久生效, 解决 ERROR 1820 问题 * * 2.3.1 永久生效解决方法链接: * 2.3.2 解决 ERROR 1820 * 3. 自定义路径安装mysql 的/etc/my.cnf 配置模板 * 4. 卸载删除mysql * * 4.1 删除所有与mysql关联的目录 * 报错解决参考链接 下面是笔者拙劣的测试记录,安装mysql的精华版教程,如下所示: [Linux (Centos 7) 自定义目录安装mysql - 精华版:传送门][Linux _Centos 7_ _mysql -] -------------------- ## 1. 自定义安装 mysql 参考链接 ERROR 2002 / ERROR 1045 / ERROR 1054 / ERROR 1290 ## [CentOS7.4自定义安装MySQL][CentOS7.4_MySQL] 上面链接报错 pid 文件问题,解决方法补充链接: [Starting MySQL. ERROR! The server quit without updating PID file][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)][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)][ERROR 1045 _28000_ Access denied for user _root_localhost_ _using password_ YES] 需要配置mysql 用户密码 密码修改命令:(下面的1 和 2 两条命令都要输入) 1. 远程用户密码修改命令: mysql> ALTER USER 'root'@'localhost' IDENTIFIED BY '123456'; `IDENTIFIED BY` 后面是自己配置的密码,这里笔者就随便了点,设置 **123456** 1. mysql 修改指定用户的密码:`password=password()` 括号内是密码 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 版本,具体的可以帮忙写在评论区) 1. 下面命令适用于 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.2. Centos 7 - _ Mysql _ _ ERROR 1045 _28000_ -] [2.3. Centos 7 mysql 5.x / mysql 8.x 出现 mysql 服务重启后,validate\_password 的配置失效问题 - 永久生效方法][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 的密码策略:传送门][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’: 传送门][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. 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’ 的作用][1. init-connect_SET NAMES utf8_] [2. mysql通过my.cnf修改默认字符集为utf-8的方法和注意事项 character-set-server=utf8][2. mysql_my.cnf_utf-8_ character-set-server_utf8] [3. 关于下划线变量和非下划线变量的配置理解,为什么 character-set-server 不可以变成 character\_set\_server的启发理解][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之间的区别: 传送门][1. mysql_ mysqladmin_ mysqld_] [2. ERROR 1045 (28000): Access denied for user ‘root’@‘localhost’ (using password: YES)][ERROR 1045 _28000_ Access denied for user _root_localhost_ _using password_ YES] [3. ERROR 1045 (28000): Access denied for user ‘root’@‘localhost’ (using passwor][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)问题][4. Centos7_MySQL_ERROR 1045 _28000_ Access denied for user _localhost_ _using passwor] [Linux _Centos 7_ _mysql -]: https://blog.csdn.net/qq_42701659/article/details/127529735 [CentOS7.4_MySQL]: https://www.jianshu.com/p/b1759d720cb4?utm_campaign=haruki&utm_content=note&utm_medium=reader_share&utm_source=qq [Starting MySQL. ERROR_ The server quit without updating PID file]: https://blog.csdn.net/zqin0/article/details/106444580/ [ERROR 2002 _HY000_ Can_t connect to local MySQL server through socket _tmp_mysql.sock_ _2]: https://www.jb51.net/article/174244.htm [ERROR 1045 _28000_ Access denied for user _root_localhost_ _using password_ YES]: https://blog.csdn.net/qq_39564555/article/details/102520778 [2.2. Centos 7 - _ Mysql _ _ ERROR 1045 _28000_ -]: https://blog.csdn.net/qq_42701659/article/details/127449880 [2.3. Centos 7 mysql 5.x _ mysql 8.x _ mysql _validate_password _ -]: https://blog.csdn.net/qq_42701659/article/details/127459632?csdn_share_tail=%7B%22type%22:%22blog%22,%22rType%22:%22article%22,%22rId%22:%22127459632%22,%22source%22:%22qq_42701659%22%7D [1. _ Mysql]: https://blog.csdn.net/hello_world_qwp/article/details/79551789 [ERROR 1193 _HY000_ Unknown system variable _validate_password_policy_]: https://blog.csdn.net/qq_52572621/article/details/127106162 [1. init-connect_SET NAMES utf8_]: https://blog.csdn.net/weixin_32081079/article/details/113292556 [2. mysql_my.cnf_utf-8_ character-set-server_utf8]: https://www.jb51.net/article/92802.htm [3. _ character-set-server _ character_set_server]: https://blog.csdn.net/qq_27361945/article/details/122207973 [1. mysql_ mysqladmin_ mysqld_]: https://blog.csdn.net/oJACKhao/article/details/80241408 [3. ERROR 1045 _28000_ Access denied for user _root_localhost_ _using passwor]: https://blog.csdn.net/weixin_44894962/article/details/105510190 [4. Centos7_MySQL_ERROR 1045 _28000_ Access denied for user _localhost_ _using passwor]: https://blog.csdn.net/tianya_lu/article/details/110109992
还没有评论,来说两句吧...