本地访问autodl配置的mysql数据库
Step1. 首先更新apt-get工具:
apt-get update
若不更新直接安装mysql-server的话,可能出现unable to locate package mysql-server的情况哦
Step2. 安装mysql并验证是否开启成功
1. 安装mysql
apt-get install mysql-server

2. 开启mysql服务,执行命令如下:
service mysql start

3. 确认是否成功开启mysql:
netstat -top | grep mysql


若遇到netstat:command not found的错误,则执行下面两条命令:
apt search netstat #搜索netstat软件包
sudo apt install net-tools #使用net-tools软件包安装

Step3. 登录 MySQL
在最新使用的 MySQL 版本中,默认使用 auth_socket 插件来进行身份验证,这意味着 root 用户通过操作系统的用户身份进行认证,而不是使用密码。这种配置在许多 Linux 系统上是默认的,特别是在安装MySQL 时不要求设置密码的情况下。如果我们希望使用传统的密码验证方式来登录 MySQL,需要更改 root用户的认证方式。以下是如何将 root 用户从 auth_socket 插件更改为使用密码认证的步骤:
1. 首先使用命令登录到MySQL
sudo mysql

2. 更改认证插件和设置密码
在MySQL命令行中,可以使用以下命令来更改root用户的认证插件并设置一个新密码:
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '新密码'; FLUSH PRIVILEGES; #将'新密码'改为自己想要设置的新密码

Step4. 退出并测试MySQL的登录:
1. 更改完成密码后退出MySQL
exit;



2. 然后尝试使用新密码登录
sudo mysql -u root -p

Step5. mysql开启外部访问
1. MySQL 配置文件中的 bind-address 参数限制了可以接受连接的 IP 地址。需要确认它是否设置为允许从你的客户端 IP 访问。查看 /etc/mysql/mysql.conf.d/mysqld.cnf 文件中的 bind-address:

sudo systemctl restart mysql

3. 当出现这个问题时,说明系统没有使用 systemd 作为初始化系统,解决方法为
apt-get install systemd -y apt-get install systemctl -y
然后执行重启MySQL服务

4. 再次登录Mysql,确保 MySQL 用户的主机设置允许从你的客户端 IP 地址连接。可以在 MySQL 中运行以下 SQL 命令来检查:
首先,需要使用 root 用户或具有相应权限的用户登录到 MySQL。
mysql -u root -p
5. 登录后,需要选择 mysql 数据库,因为用户信息存储在这个数据库中:
USE mysql;

6. 执行以下 SQL 命令来查看所有用户及其主机:
SELECT user, host FROM user;

7. 决定修改现有用户(如 root 用户),需要更改用户的 host 值,以允许从任意 IP 地址连接。执行如下命令
UPDATE user SET host = '%' WHERE user = 'root' AND host = 'localhost'; FLUSH PRIVILEGES;

8. autodl中使用如下管道命令开启3306端口,mysql默认为3306端口
ssh -CNg -L 3306:127.0.0.1:3306root@connect.nmb1.seetacloud.com -p 10982
9. 本机电脑中新建mysql连接

10. host为本地127.0.0.1,因为管道代理的本地ip为127.0.0.1而服务器端在Step4的第2步中也设置的是任意ip中连接,端口为3306,password为服务器上配置的密码


浙公网安备 33010602011771号