-
使用
sudo apt update
命令更新索引。 -
执行
sudo apt install mysql-server
命令安装MySQL服务器 -
安装完成后 MYSQL服务会自动作为systemd服务自动启动,可以使用
sudo systemctl status mysql
命令验证MYSQL服务是否正在运行。Active(running)
● mysql.service - MySQL Community Server Loaded: loaded (/lib/systemd/system/mysql.service; enabled; vendor preset: enabled) Active: active (running) since Thu 2023-06-22 19:17:06 CST; 22min ago Process: 8884 ExecStartPre=/usr/share/mysql/mysql-systemd-start pre (code=exited, status=0/SUCCESS) Main PID: 8892 (mysqld) Status: "Server is operational" Tasks: 38 (limit: 9430) Memory: 366.8M CPU: 5.293s CGroup: /system.slice/mysql.service └─8892 /usr/sbin/mysqld 6月 22 19:17:05 mumoing systemd[1]: Starting MySQL Community Server... 6月 22 19:17:06 mumoing systemd[1]: Started MySQL Community Server.
-
如果登陆到Ubuntu22的用户不是root用户(正常应该不是root用户),那么这个时候想要通过命令
mysql -u root -p
登陆MySQL,无论是否输入密码或者密码是否正确都会被拒绝连接(MySQL root用户默认是没有密码的)。错误信息如下:ERROR 1698 (28000): Access denied for user 'root'@'localhost'
-
这是因为在MySQL8上,对于root用户使用
auto_socket
插件进行身份验证。而这个auto_socket
插件仅仅通过从losthost连接到 Unix Socket文件用户进行身份验证。所以不是root用户登录就无法验证通过 -
下面将验证方式改为密码验证来确保可以后面可以通过
mysql -u root -p
输入密码直接登录rootsudo mysql # 连接到mysql服务器
-- 连接mysql服务器后需要执行两条命令 -- 修改root登录通过密码验证,并设置root用户密码 ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '你的密码'; -- 刷新权限表 FLUSH PRIVILEGES;
-
尝试通过
mysql -u root -p
输入刚刚设置的密码登录MySQL服务,end~ -
输入MySQL命令
status
查看编码格式,直接就是utf8,完美。
-
配置root用户可以在哪些主机上进行登录,默认只能通过在本机上
localhost
登录。use mysql; -- 更新root用户可以远程在任何机器上登录 update user set host='%' where user='root' and host='localhost'; -- 刷新权限表,使配置生效。注意:此时就要刷新一下权限表 flush privileges; -- all on 表示所有权限;% 表示通配所有的host 可以远程访问。 grant all on *.* to 'root'@'%'; -- 再次刷新权限表 flush privileges;
-
愉快的开始使用MySQL吧。
补充说明:使用navicat远程连接如果出现以下问题。2002 - Can't connect to server on '192.168.9.17' (36)
编辑mysql配置文件 sudo vim /etc/mysql/mysql.conf.d/mysqld.cnf
找到下面这一行,添加#
号给注释掉。保存配置文件。
执行systemctl restart mysql
重启MySQL服务,重新连接即可成功。