libpython3.7m.so.1.0: /usr/local/lib/libpython3.7m.so.1.0
安装 MySQL
sudo apt update
sudo apt install mysql-server
查看默认用户名和密码
新版的MySQL安装后,默认用户名不是root,为了方便,一般我们需要修改成我们想要的用户名和密码。进入配置文件:
vim /etc/mysql/debian.cnf
结果如下:
默认的密码为:
user = debian-sys-maint
password = VDgQcUjzyfPfgxbA
登录数据库并修改用户名和密码
mysql -udebian-sys-maint -p
查看mysql中默认数据库:(记得sql结尾要加分号)
show databases;
使用数据库mysql:
use mysql;
将root密码设置为空:
update user set authentication_string='' where user='root';
清空root用户默认的密码:
select user,authentication_string from user where user='root';
为root设置密码:ALTER user
ALTER user 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '123456';
查看设置root用户和密码:
select user,authentication_string from user where user='root';
退出SQL:
quit;
在mysql8.0之后的版本中,password函数已被取消,加密方式不再使用mysql_native_password,换成了caching_sha2_password.
原本的sql语句为:
UPDATE user SET authentication_string=password("密码") WHERE user="root";
1
对应的写法可以改为:
UPDATE user SET authentication_string=SHA1("密码") WHERE user="root";
配置MySQL远程登陆
#修改配置文件,注释掉 bind-address = 127.0.0.1
$ sudo vi /etc/mysql/mysql.conf.d/mysqld.cnf
# 保存退出,然后进入mysql服务,执行授权命令:(输入密码123456)
$ mysql -uroot -p
localhost即本地主机的域名,如同:www.baidu.com ,也是本机ip地址,整个127.* 网段通常被用作loopback网络接口的默认地址,按照惯例通常设置为127.0.0.1。我们当前这个主机上的这个地址,别人不能访问,即使访问,也是访问自己。因为每一台TCP/IP协议栈的设备基本上都有local/127.0.0.1.
进入数据库之后,查看当前主机配置信息为localhost,需要修改为%:(目的是为了让所有主机都能访问)
use mysql;
select host from user where user='root';
将Host设置为通配符%:
update user set host = '%' where user ='root';
修改后要刷新一下:
flush privileges;
查看是否修改成功:
select host from user where user='root';
退出数据库后重启数据库服务:(然后就可以在数据库工具远程MySQL数据库了。)
sudo /etc/init.d/mysql restart #重启mysql服务
在远程数据库远程连接MySQL数据库了
首先是进行测试,无论您如何安装它,MySQL 都应该自动开始运行。要对此进行测试,请检查其状态。
sudo systemctl status mysql
然后,使用 ss 命令检查开放端口:
sudo ss -ltn
可以看出,我们的服务器正在侦听端口 3306 和 33060 上的连接。这些是与 HTTP 和 MySQL 相关的端口。
在我们的本地系统上使用ss或者nmap localhost命令时,我们绕过了防火墙。实际上,这些命令显示处于侦听状态的端口,但这并不一定意味着端口对 Internet 开放,因为我们的防火墙可能拒绝连接。
使用以下命令检查 ufw 防火墙的状态。
sudo ufw status verbose
可以发现,防火墙状态为不活动。
如果防火墙状态为active状态, ufw 拒绝传入连接。由于端口 80 和 3306 尚未添加为例外,因此 HTTP 和 MySQL 无法接收传入连接,尽管ss并nmap报告它们处于侦听状态。
让我们使用以下命令为这些端口添加例外。
sudo ufw allow 80/tcp
sudo ufw allow 3306/tcp
使用ifconfig查看服务器ip地址,然后在navicat中连接数据库。
连接结果如下:
也可以用VSCode来管理MySql数据库:
- 点击左侧扩展插件,然后搜索下MySql;
- 安装过后,我们就需要连接了,直接快捷键,Ctrl+Shift+P,打开窗口;
- 设置如下:
- 端口号默认3306
- 连接结果如下:
参考链接
Ubuntu安装MySQL8.0,并用Navicat远程连接_任求其-zzx的博客-CSDN博客
在 Ubuntu 22.04 上安装 Python 3.9(多版本适用) - 知乎 (zhihu.com)