数据库的启停与连接
# 30.数据库的启停与连接
安装完成,接下来就是数据库的管理了,例如启停、连接、创建和删除等
# MySQL的启停
如果判断MySQL是否运行中呢?
在Windows下,在我的电脑-管理:
然后打开服务页面,可以在右侧看到Windows正在运行的服务,其中就包含了MySQL,目前状态是正在运行
这是因为我们之前安装的时候,配置了Windows service。
也可以运行 services.msc,直接打开该页面
可以在该服务上右键,来停止/启动/重启MySQL。
在Linux下,可以通过systemctl工具来控制MySQL。
查看状态:inactive表示没启动
$ systemctl status mysqld
● mysqld.service - MySQL Server
Loaded: loaded (/usr/lib/systemd/system/mysqld.service; enabled; vendor preset: disabled)
Active: inactive (dead)
Docs: man:mysqld(8)
http://dev.mysql.com/doc/refman/en/using-systemd.html
2
3
4
5
6
启动MySQL:
systemctl start mysqld
然后再次查看状态,可以看到状态为active了,也就是启动了
[root@iZbp15znu62vc5m204xkp1Z ~]# systemctl status mysqld
● mysqld.service - MySQL Server
Loaded: loaded (/usr/lib/systemd/system/mysqld.service; enabled; vendor preset: disabled)
Active: active (running) since Sun 2023-11-12 12:01:49 CST; 2s ago
....
2
3
4
5
停止:systemctl stop mysqld
重启:systemctl restart mysqld
,或者先 stop
后再 start
在操作数据库之前,需要先连接上数据库。接下来讲讲如何连。
# 通过命令行连接
# Linux下连接
在Linux下安装MySQL后,会生成一个随机的初始密码(在Mac上安装的话同理),存储在日志文件中,可以通过grep来搜索:
$ grep 'temporary password' /var/log/mysqld.log
2023-11-12T04:01:43.278875Z 6 [Note] [MY-010454] [Server] A temporary password is generated for root@localhost: O2.lvJhqPCgh
2
说明:为root@localhost用户创建的密码是 O2.lvJhqPCgh
。root是用户名,localhost表明是本机连接
知道密码后,就可以连接了:
mysql -uroot -p
说明:
- -uroo:u是user的意思,root是用户名,-uroot表明通过root用户来连接数据库。
- -p:通过密码(password)来连接。
输入该命令后,提示输入密码(输入的密码是不可见的,只能看到一个个星号)。
也可以显示输入密码,在-p后面直接带上密码即可(如果是工作中,请不要这么做):
-- 显示输入密码
mysql -uroot -pAa123132
2
输入完初始密码后,就能连接上MySQL了。连接成功后,就会显示MySQL的一些连接信息,版本信息等,然后在mysql>
后面就可以输入SQL来操作数据库了。
$ mysql -uroot -p
Enter password:
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 9
Server version: 8.0.35
Copyright (c) 2000, 2023, Oracle and/or its affiliates.
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>
2
3
4
5
6
7
8
9
10
11
12
13
14
15
# Windows上连接
如果是在Windows上安装了数据库,可以在开始菜单找到MySQL相关的菜单,我们选择命令行的方式(Command Line Client,CLI):
可以看到有两个CLI,这是因为我安装了2个MySQL,所以才有2个
然后输入密码(安装时配置的),就能连接上了:
也可以打开终端,用命令的方式连接:
# 修改密码
在Linux上的MySQL,要执行SQL之前必须先修改默认的初始密码,否则会报错:
RROR 1820 (HY000): You must reset your password using ALTER USER statement before executing this statement.
修改密码的语法:
alter user 'root'@'localhost' identified by '密码';
注意密码不能太简单(例如123456),不然不允许修改:
mysql> ALTER USER 'root'@'localhost' IDENTIFIED BY '123456';
ERROR 1819 (HY000): Your password does not satisfy the current policy requirements
2
当然也可以通过修改MySQL的配置,来允许弱密码,这里不展开
# 指定端口
在用命令行的方式连接的时候,没有指定端口,则默认连接的是3306端口;
如果要指定端口,使用-P
参数,例如:
mysql -uroot -p -P 3307
# 指定IP
如果MySQL服务器不是在本机,则需要指定IP,使用-h
参数,例如:
mysql -uroot -p -h 101.xx.xx.xx -P 3306
ps:如果是在Linux上安装了两个MySQL,有时候会出现指定端口失败的情况。这是因为默认使用3306端口,链接成功后,则不使用 -P指定的端口了。
解决方法:加 -h指定IP,使 -P参数起效。
# 开启远程访问
由于安全考虑,因为root用户权限极大,root用户默认是只能在本机连接上的。其他用户来连接只会有报错:
mysql -uroot -p -h 101.xx.xx.xx -P 3306
Enter password: ***********
ERROR 1130 (HY000): Host '116.xx.xx.xx' is not allowed to connect to this MySQL server
2
3
因此,我们新建一个用户,用来远程登录,语法:
create user '用户名'@'IP地址' identified by '密码';
说明:IP地址相当于白名单,只有白名单里的IP才能连接本机的数据库,其他IP不允许。可以用百分号%
来表示任何IP都能用该用户来远程连接。
例如,我们创建一个admin用户,密码是Aa@123456
create user 'admin'@'%' identified by 'Aa@123456';
然后就可以通过远程的方式来连接了:
mysql -uadmin -p -h 101.xx.xx.xx -P 3306
特别:如果连接的是Linux上的MySQL,注意配置Linux的防火墙规则,允许3306端口。如果是云服务器则还需在云控制台上配置防火墙。
# 断开连接
使用 exit 或 quit 命令来断开连接。如:
mysql> exit
Bye
2
# 数据库连接工具
除了使用命令行的方式,市面上还有很多可视化工具。使用这些工具好处也很多:
- 可以管理多个连接,不用每次都指定IP、端口、输入密码;
- 可以通过可视化的方式来查看数据,不用逐个输入命令
- SQL自动补全
- ........
常见的工具有:
- Navicat (opens new window):好用,非常流行,不过收费,比较贵(几千元,逢年过节会打一点折,可以通过订阅邮件来关注打折信息)。市面上有很多破解版。
- Chat2DB (opens new window):阿里开发的一个数据库管理系统,结合了AI,功能强大。
- Dbeaver (opens new window):免费,流行
- Beekeeper Studio (opens new window):流行,跨平台的数据库管理工具。
- .................
按需选择一款即可,不用花太多时间去纠结。
# 相关文章
- mysql -P端口号无效 遇坑记录 - 简书 (opens new window)
- MySQL 8.0的Public Key Retrival错误,毫无规律可言怎么破? (opens new window):一个偶发性的错误
- 再见收费的Navicat!这款开源的数据库管理工具界面更炫酷! (opens new window)
- 几种常用的MySQL图形化管理工具介绍使用和下载-CSDN博客 (opens new window)
- dbeaver 使用教程(简版) - 简书 (opens new window)
- 11 款超赞的 MySQL 图形化工具,好用! (opens new window)