mysql有时本地连接不上或者远程连接不上
bug种类
- 远程连接不上,服务器能连接上?
-
排除网络或防火墙问题
通过宝塔放行端口
-
检查MySQL配置
netstat -a 3306
-
检查用户权限
use mysql; update user set host='%' where user = 'root';
- 服务器连接不上,远程连接上?
基本上是 root用户密码,权限问题
-
修改root的 host值
use mysql; select host, user from user; #(其中 % 的意思是允许所有的ip远程访问,如果需要指定具体的某个ip就写上具体的ip即可) update user set host = '%' where user = 'root' limit 1; 重启mysql;
-
如果还是不行,可能有一个localhost 为空,引起的。
20190813015012873.png基本是因为user表里面有一个 localhost 对应的user为空;
解决方式三种:- 丢弃掉localhost 对应的user
drop user ''@localhost; flush privileges;
- 在my.cnf 的【mysql】区段添加
protocol = tcp - 给localhost的用户添加密码即可
grant all privileges on *.* to 'root'@'localhost' identified by 'root'; flush privileges; 重启mysql
MySQL添加新用户、创建数据库、为新用户分配权限
在平常开发中,尽量不要root用户去连接数据库,需要新的用户
- 添加普通用户可以访问针对性的数据库
例如: xxx_dev 只能 对 yyy_db 有所有的操作权限
- 新建用户
create user 'xxx_dev'@'%' identified by '1235678';
flush privileges;
- 授权表
grant all privileges on 'yyy_db'.* to 'xxx_dev'@'%' identified by '12345678' with grant option;
flush privileges;
- 退出重新登录即可 访问到 yyy_db数据库
- 对root用户新增和授权
update user set authentication_string=password('qwer_qwer') where user='root';
flush privileges;
create user 'root'@'localhost' identified by 'wkl_qwer';
flush privileges;
update user set authentication_string=password('qwer_qwer') where user='root';//给localhost 设置密码
mysql 5.6 升级到 mysq 5.7
在若依框架中需要把 数据库升级,否在linux中,定时任务的表导不进去。
下载地址:
http://mirrors.sohu.com/mysql/MySQL-5.7/
#安全的停止数据库的运行
/etc/init.d/mysql.server stop
# 解压mysql tar包
tar zxf mysql-5.7.28-linux-glibc2.12-x86_64.tar.gz
mv mysql-5.7.28-linux-glibc2.12-x86_64 /usr/local/
cd /usr/local/
# 删除原先软连接,建立新的软连接
unlink mysql
ln -s mysql-5.7.28-linux-glibc2.12-x86_64/ mysql
#此时,MySQL的应用程序版本已经升级完成
#/etc/init.d/mysqld
#/etc/profile中PATH增加的/usr/local/mysql/bin
#都不需要做任何的改变,即可将当前系统的mysql版本升级完成
#注意:此时只是应用程序升级完成,系统表仍然还是5.6的版本
cd /usr/local/mysql
chown root.mysql . -R
/etc/init.d/mysql.server start
# 执行更新系统表,输入密码为原先的密码
mysql_upgrade -p -s
#参数 -s 一定要加,表示只更新系统表,-s: upgrade-system-tables
#如果不加-s,则会把所有库的表以5.7.9的方式重建,线上千万别这样操作
#因为数据库二进制文件是兼容的,无需升级
#什么时候不需要-s ? 当一些老的版本的存储格式需要新的特性,
# 来提升性能时,不加-s
#即使通过slave进行升级,也推荐使用该方式升级,速度比较快
# 查看升级后的版本
mysql -V
# mysql Ver 14.14 Distrib 5.7.28, for linux-glibc2.12 (x86_64) using EditLine wrapper
升级完登录
[root@localhost mysql]# mysql -uroot -p
Enter password:
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 3
Server version: 5.7.28 MySQL Community Server (GPL)
Copyright (c) 2000, 2019, 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> show databases;
+--------------------+
| Database |
+--------------------+
| information_schema |
| cms |
| mysql |
| performance_schema |
| sys | # 5.7 新的sys库
| test |
+--------------------+
6 rows in set (0.00 sec)
mysql>
网友评论