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.检查网络是否通畅(跨服务器访问)