Ubuntu 24.04 系统版本 安装 MySQL 8 及相关配置

1、卸载原有MySQL(如果有)

复制代码
sudo apt purge mysql-*
sudo rm -rf /etc/mysql/ /var/lib/mysql
sudo apt autoremove
sudo apt autoclean

2、安装 mysql

复制代码
sudo apt-get install mysql-server -y    #mysql 服务端
#sudo apt install mysql-client  -y     #mysql 客户端
#sudo apt install libmysqlclient-dev -y #mysql 开发包

3、检查mysql服务是否成功启动

复制代码
 sudo netstat -tap | grep mysql
 ## 输出:
tcp        0      0 localhost:mysql         0.0.0.0:*               LISTEN      22147/mysqld
tcp        0      0 localhost:33060         0.0.0.0:*               LISTEN      22147/mysqld

4、查看mysql 服务运行状

复制代码
 sudo service mysql status
 ## 输出
 mysql.service - MySQL Community Server
     Loaded: loaded (/usr/lib/systemd/system/mysql.service; enabled; preset: enabled)
     Active: active (running) since Sat 2025-11-08 07:19:30 UTC; 4min 20s ago
    Process: 22135 ExecStartPre=/usr/share/mysql/mysql-systemd-start pre (code=exited, status=0/SUCCESS)

5、启动服务:

复制代码
sudo service mysql start
##遇到了警告 su:warning blah blah blah... 
解决方法参考如下:
(MySQL 8, WSL 2) su: warning: cannot change directory to /nonexistent: No such file or directory · Issue #256 · miguelgrinberg/microblog · GitHub
## 解决方法
sudo service mysql stop #先停止服务
sudo usermod -d /var/lib/mysql/ mysql #为 mysql 用户创建一个主目录
sudo service mysql start #然后再启动

6、查看默认密码

复制代码
sudo cat /etc/mysql/debian.cnf

    gyl@DESKTOP-36KGR35:~$ sudo cat /etc/mysql/debian.cnf
    # Automatically generated for Debian scripts. DO NOT TOUCH!
    [client]
    host     = localhost
    user     = debian-sys-maint
    password = MaNpLifyktR6fjgc
    socket   = /var/run/mysqld/mysqld.sock
    [mysql_upgrade]
    host     = localhost
    user     = debian-sys-maint  ###用户名###
    password = MaNpLifyktR6fjgc  ####密码####
    socket   = /var/run/mysqld/mysqld.sock

//修改密码:密码改为了yourpassword,可以设置成其他的
update mysql.user set authentication_string=password('yourpassword') where User='root' and Host ='localhost';
update user set plugin="mysql_native_password"; 
如果报错使用:
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'yourpassword';


flush privileges;
quit;

## ERROR 1396 (HY000): Operation ALTER USER failed for 'root'@'%'
# 检查mysql.user表用户和主机名:
USE mysql;
SELECT User, Host FROM user;
# Host不为"%"则更新为%
UPDATE mysql.user SET Host='%' WHERE user='root';
# 更改身份验证插件:mysql_native_password
UPDATE user SET plugin='mysql_native_password' WHERE user='root';
FLUSH PRIVILEGES;
 # 或是重置密码
UPDATE user SET authentication_string='' WHERE user='root';
FLUSH PRIVILEGES;

MySQL远程访问配置脚本

复制代码
## 修改root用户认证方式为密码认证: 【注意密码规则】
ALTER USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY 'Root@123';

或:或者创建新的管理用户(推荐用于生产环境)
CREATE USER 'root'@'%' IDENTIFIED BY 'Root@123';
GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' WITH GRANT OPTION;

##  刷新权限使更改生效
FLUSH PRIVILEGES;

##  验证用户权限配置
SELECT user, host, plugin, authentication_string FROM mysql.user WHERE user = 'root'

## 检查MySQL服务状态
sudo systemctl status mysql --no-pager -l

## 网络监听状态:"
sudo ss -tlnp | grep mysql

## 绑定地址配置:【目录 /etc/mysql】
sudo grep -r "bind-address" /etc/mysql/

## 防火墙状态
sudo ufw status

Ubuntu System has not been booted with systemd:系统尚未以systemd作为初始系统启动

1、查看系统运行的第一个进程(init 系统)

复制代码
ps -p 1 -o comm=

e.g.: 
root@DESKTOP-36KGR35:/etc# ps -p 1 -o comm=
init(Ubuntu-24. 或是 init(Debian)

2、使用 sysvinit 命令,代替 systemctl 命令。

3、sysvinit 命令与 systemctl 命令的语法相似。对比如下:

|------------------------------|--------------------------------|
| Sysvinit command | Systemd command |
| service service_name start | systemctl start service_name |
| service service_name stop | systemctl stop service_name |
| service service_name restart | systemctl restart service_name |
| service service_name status | systemctl status service_name |
| chkconfig service_name on | systemctl enable service_name |
| chkconfig service_name off | systemctl disable service_name |

相关推荐
宠友信息23 分钟前
内容社区源码开发实践解析,用Spring Boot打造1:1仿小红书源码平台
java·spring boot·redis·websocket·mysql·spring·uni-app
明王明王44 分钟前
Ubuntu 26.04 使用 Windows Spotlight:给 Bing Wallpaper 加上 Spotlight 支持
linux·windows·ubuntu
江湖有缘1 小时前
Docker开源项目: 基于Ubuntu系统部署ExpenseOwl自托管记账工具实战教程
ubuntu·docker·开源
一直C1 小时前
【数据结构】哈希表+算法复杂度与经典排序查找(C语言)
java·linux·开发语言·数据结构·算法·ubuntu·散列表
2501_916008892 小时前
iOS App 请求地址查看,不用配置看到 App 调了哪些接口
网络协议·计算机网络·网络安全·ios·adb·https·udp
λqaq72 小时前
MySQL 数据库基础(2)约束、用户权限、远程连接、外键与 TCP/UDP 理解
linux·数据库·python·tcp/ip·mysql
叫我:松哥3 小时前
基于flask图书数据管理系统,技术栈flask+MySQL+boostrap
python·mysql·flask
PHP实战开发录4 小时前
企业微信客户标签同步冲突排查记录
mysql·系统安全·php·企业微信·开发
kobe_OKOK_4 小时前
ubuntu server 打包成一个压缩文件,并且在另一台电脑中解压缩
服务器·数据库·ubuntu
又是重名了4 小时前
集团项目信创改造3 mysql to dm 插入获取主键
数据库·mysql·dameng