Linux系列:Ubantu 安装 MySQL 8.0 教程

第一步 :更新软件包
bash 复制代码
$ sudo apt update 
第二步 :安装 mysql8.0
bash 复制代码
$ sudo apt install mysql-server-8.0 -y
第三步:查询安装的 mysql 版本
bash 复制代码
$ mysql --version
mysql  Ver 8.0.32-0ubuntu0.20.04.2 for Linux on x86_64 ((Ubuntu))
或者
$ mysql -V
mysql  Ver 8.0.32-0ubuntu0.20.04.2 for Linux on x86_64 ((Ubuntu))
第四步:停止 mysql 服务
bash 复制代码
$ sudo /etc/init.d/mysql stop
第五步:创建特定mysql运行目录
bash 复制代码
$ sudo mkdir /var/run/mysqld
$ sudo chown mysql /var/run/mysqld
第六步:取消授权登录的限制,允许你可以匿名登录
bash 复制代码
$ sudo mysqld_safe --skip-grant-tables&
第七步:进入 mysql
bash 复制代码
$ sudo mysql --user=root mysql
第八步:获取所有的权限
sql 复制代码
mysql> UPDATE mysql.user SET authentication_string=null WHERE User='root';
mysql> flush privileges; 
第九步:修改 mysql 密码
sql 复制代码
mysql> ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '123456';
mysql> flush privileges;
第十步:退出 mysql

快捷键:Ctrl+z

bash 复制代码
mysql > exit
Bye
第十一步:验证 mysql 密码修改是否成功
bash 复制代码
# 关掉 mysql 所有的进程
$ sudo killall -u mysql

# 重启 mysql
$ sudo /etc/init.d/mysql start
Starting mysql (via systemctl): mysql.service.

# 进入mysql
$ mysql -uroot -p123456
>mysql
第十二步:设置开机启动 mysql 服务
bash 复制代码
# 设置开机启动 mysql 服务
$ sudo update-rc.d -f mysql defaults

# 查看是否开机启动 mysql 服务
$ sudo service mysql status
mysql.service - MySQL Community Server
     Loaded: loaded (/lib/systemd/system/mysql.service; enabled; vendor preset: enabled)
     Active: active (running) since Fri 2023-02-03 02:53:16 UTC; 3min 18s ago
   Main PID: 6212 (mysqld)
     Status: "Server is operational"
      Tasks: 39 (limit: 9406)
     Memory: 367.0M
     CGroup: /system.slice/mysql.service
             └─6212 /usr/sbin/mysqld

Feb 03 02:53:15 zgxt systemd[1]: Starting MySQL Community Server...
Feb 03 02:53:16 zgxt systemd[1]: Started MySQL Community Server.

# 取消开机启动 mysql 服务
$ sudo update-rc.d -f mysql remove
第十三步:mysql 服务操作
bash 复制代码
# 查看 mysql 服务运行状态
$ sudo service mysql status

# 开启 mysql 服务
$ sudo service mysql start

# 停止 mysql 服务
$ sudo service mysql stop
第十四步:mysql 开启 root 用户远程连接

注意:mysql 出于安全方面考虑默认只允许本机(localhost, 127.0.0.1)来连接访问

bash 复制代码
# 进入 mysql
$ mysql -uroot -p123456

# 切换到 mysql 数据库
mysql> use mysql

# 查看 root 用户权限
mysql> select user,host,plugin from user;
+------------------+-----------+-----------------------+
| user             | host      | plugin                |
+------------------+-----------+-----------------------+
| debian-sys-maint | localhost | caching_sha2_password |
| mysql.infoschema | localhost | caching_sha2_password |
| mysql.session    | localhost | caching_sha2_password |
| mysql.sys        | localhost | caching_sha2_password |
| root             | localhost | mysql_native_password |
+------------------+-----------+-----------------------+

可以看到 root 用户只有 localhost 本机权限,就是只有本机能访问

bash 复制代码
# 给 root 用户授权
mysql> update user set host = '%' where user ='root';
mysql> flush privileges;

# 查看 root 用户权限
mysql> select user,host,plugin from user;
+------------------+-----------+-----------------------+
| user             | host      | plugin                |
+------------------+-----------+-----------------------+
| root             | %         | mysql_native_password |
| debian-sys-maint | localhost | caching_sha2_password |
| mysql.infoschema | localhost | caching_sha2_password |
| mysql.session    | localhost | caching_sha2_password |
| mysql.sys        | localhost | caching_sha2_password |
+------------------+-----------+-----------------------+

注意:其中 % 表示任意远程 IP 可以访问

修改 mysql 配置文件,将默认的 bind-address=127.0.0.1 修改如下:

bash 复制代码
# 修改 mysql IP地址绑定
$ cd /etc/mysql/mysql.conf.d
bind-address  = 0.0.0.0

## 关掉 mysql 所有的进程
$ sudo killall -u mysql

# 重启 mysql
$ sudo /etc/init.d/mysql start

# 查询 mysql 服务监听端口
$ sudo ss -tulnp | grep LISTEN | grep mysql
tcp    LISTEN  0       151                    0.0.0.0:3306         0.0.0.0:*     users:(("mysqld",pid=9340,fd=23)) 

注意:0.0.0.0:3306 表示支持监听远程连接

使用 Navicat 远程连接 mysql 数据库:

相关推荐
开开心心就好20 分钟前
发票合并打印工具,多页布局设置实时预览
linux·运维·服务器·windows·pdf·harmonyos·1024程序员节
予枫的编程笔记1 小时前
【Linux进阶篇】从基础到实战:grep高亮、sed流编辑、awk分析,全场景覆盖
linux·sed·grep·awk·shell编程·文本处理三剑客·管道命令
Sheep Shaun1 小时前
揭开Linux的隐藏约定:你的第一个文件描述符为什么是3?
linux·服务器·ubuntu·文件系统·缓冲区
Tfly__1 小时前
在PX4 gazebo仿真中加入Mid360(最新)
linux·人工智能·自动驾驶·ros·无人机·px4·mid360
陈桴浮海1 小时前
【Linux&Ansible】学习笔记合集二
linux·学习·ansible
生活很暖很治愈1 小时前
Linux——环境变量PATH
linux·ubuntu
?re?ta?rd?ed?1 小时前
linux中的调度策略
linux·运维·服务器
深圳市九鼎创展科技1 小时前
瑞芯微 RK3399 开发板 X3399 评测:高性能 ARM 平台的多面手
linux·arm开发·人工智能·单片机·嵌入式硬件·边缘计算
hweiyu001 小时前
Linux 命令:tr
linux·运维·服务器
Trouvaille ~1 小时前
【Linux】应用层协议设计实战(一):自定义协议与网络计算器
linux·运维·服务器·网络·c++·http·应用层协议