‹ 返回笔记 Esc·

MySQL 命令

MySQL 中的死锁释放 通过使用 KILL 语句来终止一个会话。如果该会话持有行锁,则在释放锁之前无法使用KILL语句结束该会话。 1. 使用命令SHOW ENGINE INNODB STATUS;…

MySQL 中的死锁释放

通过使用 KILL 语句来终止一个会话。如果该会话持有行锁,则在释放锁之前无法使用KILL语句结束该会话。

  1. 使用命令SHOW ENGINE INNODB STATUS; 来查看当前会话的状态并找到占用锁的线程id。
  2. 使用命令SELECT * FROM information_schema.INNODB_LOCKS WHERE locked_by_thread = [线程ID],来查看当前会话所持有的锁信息。
  3. 选择需要杀死的线程 id,并使用命令KILL [线程ID];来终止该会话。
  4. 当会话被结束时,对应的行锁也会被释放。

MySQL 0.0.0.0 监听启动

  1. 修改 MySQL 配置文件

Linux: /etc/mysql/my.cnf/etc/my.cnf

打开配置文件后,找到 [mysqld] 部分,并修改或添加以下内容:

1[mysqld]
2bind-address = 0.0.0.0
  • 默认情况下,bind-address 可能被设置为 127.0.0.1,这表示 MySQL 仅监听本地回环地址。
  • 将其改为 0.0.0.0 后,MySQL 会监听所有网络接口。
  1. 重启 MySQL 服务

修改配置文件后,需要重启 MySQL 服务以使更改生效。

1sudo systemctl restart mysql
  1. 验证监听状态
1sudo netstat -tuln | grep 3306

如果看到类似以下输出,则说明 MySQL 正在监听所有接口:

1tcp        0      0 0.0.0.0:3306          0.0.0.0:*            LISTEN

登录 MySQL 并运行以下命令:

1SHOW VARIABLES LIKE 'bind_address';

如果返回值为 0.0.0.0,则配置成功。

  1. 创建远程用户

如果需要允许远程客户端连接到 MySQL,必须创建一个具有远程访问权限的用户。

1sudo mysql -u root -p

创建用户并授予权限

1CREATE USER 'root'@'%' IDENTIFIED BY '123456';
2GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' WITH GRANT OPTION;
3FLUSH PRIVILEGES;

MySQL 8.0 授权远程用户登录

对于 MySQL 5.7 及以后的版本,应该使用以下步骤来为用户设置密码并授予权限: 创建用户(如果用户已存在则跳过此步骤): CREATE USER 'root'@'%' IDENTIFIED BY 'Qwer@#1234'; 授予权限: GRANT ALL PRIVILEGES ON *.* TO 'root'@'%'; 刷新权限: FLUSH PRIVILEGES; 检查用户是否存在:如果你仍然遇到问题,可以检查 ‘root’@‘%’ 用户是否真的存在。在 MySQL 中,使用以下命令: SELECT user, host FROM mysql.user WHERE user = 'root'; 确保远程 MySQL 服务器对外开放,修改 MySQL 配置文件 通常是/etc/mysql/my.cnf 或 /etc/mysql/mysql.conf.d/mysqld.cnf 修改:bind-address = 0.0.0.0 重启MySQL服务以使配置生效 sudo systemctl restart mysql