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 数据库:

相关推荐
AI+程序员在路上7 小时前
CAN 总线与 Linux SocketCAN C 语言测试程序
linux·c语言·网络
Predestination王瀞潞7 小时前
4.3.3 存储->微软文件系统标准(微软,自有技术标准):VFAT(Virtual File Allocation Table)虚拟文件分配表系统
linux·microsoft·vfat
HalvmånEver7 小时前
Linux:socket套接字编程的基础概念
linux·运维·服务器
IMPYLH7 小时前
Linux 的 cp 命令
linux·运维·服务器
@syh.8 小时前
【linux】多线程
linux
RisunJan8 小时前
Linux命令-man(查看Linux中的指令帮助)
linux·运维·服务器
REDcker8 小时前
CentOS 与主流 Linux 发行版:版本与时间表(年表)
linux·运维·centos
bai_lan_ya8 小时前
使用linux的io文件操作综合实验_处理表格
linux·服务器·算法
wd5205218 小时前
常用环境部署(二十九)——Centos升级OpenSSH 10.2p1
linux·运维·centos·ssh
顶点多余8 小时前
Ext文件系统详解
linux·运维·服务器