【mysql连接报错总结】

1.前提条件

首先,数据正常运行的,不是一个坏的库;其次,数据库环境变量配置正确,保证能找到bin工具接口。

2.首次安装后连接报错

寻找临时root密码

[root@ufo130 mysql]# grep 'temporary password' /var/log/mysqld.log|awk '{print $NF}'
YjR&%Oojo4g_

临时登录、修改root密码、刷新权限表(修改的密码必须满足密码策略:字母大小写、数字和特殊字符,长度不小于8)

[root@ufo130 mysql]# mysql -uroot -p
Enter password: 
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 9
Server version: 8.0.19

Copyright (c) 2000, 2020, Oracle and/or its affiliates. All rights reserved.

Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

mysql>
mysql> ALTER USER 'root'@'localhost' IDENTIFIED BY 'Ufo_123456'; 
Query OK, 0 rows affected (0.09 sec)

mysql> flush privileges;
Query OK, 0 rows affected (0.01 sec)

重启生效

[root@ufo130 mysql]# service mysqld restart
停止 mysqld: 		[确定]                                             
正在启动 mysqld:   	[确定] 

2.参数限制问题

my.cnf(重启生效) 和全局参数(set global 参数=值;立即生效,除本会话外都有效),可同时设置。

#端口
prot=3306

#允许访问的ip网段
bind-address = 0.0.0.0

#跳过密码登录(root密码丢失时临时设置登录)
#skip-grant-tables

#主要用于MyISAM存储引擎,如果多台服务器连接一个数据库则建议注释下面内容
skip-external-locking

#只能用IP地址检查客户端的登录,不用主机名
skip_name_resolve = 1

#设置client连接mysql时的字符集,防止乱码
init_connect=‘SET NAMES utf8mb4’

#最大连接数
max_connections = 400

#最大错误连接数
max_connect_errors = 1000

#MySQL连接闲置超过一定时间后(单位:秒)将会被强行关闭,#MySQL默认的wait_timeout 值为8个小时,interactive_timeout参数需要同时配置才能生效
interactive_timeout = 1800
wait_timeout = 1800

3.忘记root密码

1.配置my.cnf参数,重启数据库

skip-grant-tables

2.重启成功后,可无密登录

[root@ufo130 ~]# mysql

3.修改root密码(需满足密码策略),刷新权限表,重启生效

mysql> ALTER USER 'root'@'localhost' IDENTIFIED BY 'Ufo_123456'; 
mysql> flush privileges;
[root@ufo130 ~]# service mysql.server restart

4.权限限制问题

Mysql权限系统通过下面几个阶段进行人证
1.对连接的用户进行身份认证,合法的用户通过认证,不合法的用户拒绝连接(常见密码错误)。
2.对合法的用户根据权限表授予具体的访问权限。
3.启动数据库时权限表已经刷入内存,并排序,当有多条记录匹配时,只根据第一条判断。

登录mysql数据库,切换到mysql数据库,更新权限表
mysql -uroot -p
use mysql

update 权限表(user、db、host),常见通过以下权限表的顺序获得数据库相关访问权限
user----db----tables_priv----columns_priv
重点:通常更新user表的以下三个字段即可
1.host----主机名、IP、localhost指出本地主机,可使用通配符 “%” 和 “_”,通配非本地的IP或主机名,其中 “%” 与 空 效果等价
2.user----用户名
3.password----密码

刷新权限表
flush privileges

5.服务器限制问题

1.检查数据库是否已经正常启动
2.关闭防火墙
3.检查网络是否通畅(跨服务器访问)

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章