目录
7、数据库工具远程连接
系统版本:Ubuntu18.04
本文演示的MySQL版本为5.7,需要安装8.0版本的可以点击查看下方的链接
1、卸载MySQL
2、安装MySQL
-
更新软件源
sudo apt update
-
安装 MySQL 5.7
sudo apt install mysql-server -y
-
验证 MySQL是否正确安装
sudo systemctl status mysql.service
-
● mysql.service - MySQL Community Server Loaded: loaded (/lib/systemd/system/mysql.service; enabled; vendor preset: e Active: active (running) since Wed 2023-02-22 03:34:06 PST; 1h 25min ago Main PID: 1227 (mysqld) Tasks: 29 (limit: 4622) CGroup: /system.slice/mysql.service └─1227 /usr/sbin/mysqld --daemonize --pid-file=/run/mysqld/mysqld.pi
-
如果你没有看到类似上面显示“Active: active (running)”,使用命令启动MySQL服务
sudo systemctl start mysql.service
3、初始化配置MySQL
-
配置和保护 MySQL
sudo mysql_secure_installation
-
接下来会依次设置一些选项
-
你是否想使用 “ 密码有效强度(validate password component)”。
-
如果你想使用它,你将必须选择一个最小密码强度(0 – 低,1 – 中,2 – 高)。你将无法输入任何不遵守所选规则的密码。如果你没有使用强密码的习惯(本应该使用),这可能会配上用场。如果你认为它可能有帮助,那你就键入 y或者 Y,按下回车键,然后为你的密码选择一个强度等级和输入一个你想使用的密码。如果成功,你将继续强化过程;否则你将重新输入一个密码。
-
本人建议是输入“y”启用,然后设置一个密码强度设置(如:2),并输入一个强密码,例如“@Aa123456”。
-
接下来的几个设置,建议都是“y”。
-
“ 移除匿名用户(remove anonymous user)”
-
“ 禁止 root 远程登录(disallow root login remotely)”
-
“ 移除测试数据库及其访问(remove test database and access to it)”
-
“ 重新载入权限表(reload privilege tables now)”
4、登录MySQL
-
登录
mysql -h host_name -u user -p
-
代码解释:
-
-h 用来指定一个主机名。如果这个MySQL服务被安装到其他机器上,那么会有用。如果没有,请忽略它
-
-u 指定登录的用户
-
-p 指定你想输入的密码
-
你还可以在命令行最右边的 -p 后直接输入密码,不过出于安全原因不建议这样做。例如用户“root” 的密码是“1234”的登录命令:
mysql -u root -p1234
-
如果你登录成功,会看到类似这样的界面
-
mysql: [Warning] Using a password on the command line interface can be insecure. Welcome to the MySQL monitor. Commands end with ; or \g. Your MySQL connection id is 3 Server version: 5.7.21-1ubuntu1 (Ubuntu) Copyright (c) 2000, 2018, 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 | | mysql | | performance_schema | | sys | +--------------------+ 4 rows in set (0.00 sec)
-
进入mysql数据库
use mysql;
-
查看user表的host和user字段
select host,user from user;
-
+-----------+------------------+ | host | user | +-----------+------------------+ | % | alex | | localhost | debian-sys-maint | | localhost | mysql.session | | localhost | mysql.sys | | localhost | root | +-----------+------------------+ 5 rows in set (0.00 sec)
-
可以看到root对应的host是localhost,只允许本地连接,需要将对应host改成"%",表示允许所有ip远程连接,这里对于root账户一般可不开远程连接,一般新建账号再分配权限后开远程连接权限
update user set host='%' where user='用户名';
5、新建用户
- 创建新用户
create user '新用户名'@'%' identified by '密码';
-
建议使用复杂密码,例如“@Aa123456”。要不然可能会遇到错误码1819,说你的密码不符合设置好的安全等级
-
-
给远程连接的权限'%'
update user set host='%' where user='用户名';
-
给新用户授权
grant all privileges on *.* to '用户名'@'%' identified by '密码' with grant option;
-
再次查看user表的host和user字段
select host,user from user;
-
刷新使配置生效
flush privileges;
-
退出MySQL数据库
\q
6、修改MySQL配置文件
-
编辑配置文件
vim /etc/mysql/mysql.conf.d/mysqld.cnf
-
注释掉bind-address = 127.0.0.1,也就是在前面加上“#”,有的版本可能还会有mysql-bind-addresses = 127.0.0.1,也可以注释掉
user = mysql pid-file = /var/run/mysqld/mysqld.pid socket = /var/run/mysqld/mysqld.sock port = 3306 basedir = /usr datadir = /var/lib/mysql tmpdir = /tmp lc-messages-dir = /usr/share/mysql skip-external-locking # # Instead of skip-networking the default is now to listen only on # localhost which is more compatible and is not less secure. #bind-address = 127.0.0.1
-
重启MySQL
sudo systemctl restart mysql-service
7、数据库工具远程连接
- 你可以在Linux系统上直接下载一个免费的MySQL Workbench 先进行Linux本地的测试,然后再用Windows上的Navicat通过网络连接。
- Linux上用终端输入“ip a”查看当前ip地址
- 虚拟机设置网络桥接,让虚拟机直接访问到路由器
- Windows上的Navicat再通过ip、用户名、密码连接
- 最终实现windows上的Navicat控制Linux虚拟机上的MySQL数据库