mysql
大约 3 分钟ubuntu
概述
介绍在 ubuntu22server 中安装 mysql8.2
安装
# 修改 apt 使用国内源后执行下面领命安装 mysql8.0
sudo apt install mysql-server
# 查看运行状态
sudo systemctl status mysql
# 运行安全脚本来设置 root 密码、删除匿名用户、禁止 root 远程登录等
sudo mysql_secure_installation
# 登录mysql服务器,使用 ubuntu22server的账号root的登录密码
sudo mysql -u root -p
# 配置远程访问
# 安装后默认只能本地访问数据库,需要通过修改配置文件允许网络访问
sudo vim /etc/mysql/mysql.conf.d/mysqld.cnf
# 找到以下内容,修改等于号后面为:0.0.0.0
bind-address = 127.0.0.1
# 保存后重启服务
sudo systemctl restart mysql
# 通过 sudo mysql -u root -p 登录后创建用户,用于远程连接
CREATE USER 'admin'@'%' IDENTIFIED BY 'your_password';
GRANT ALL PRIVILEGES ON *.* TO 'admin'@'%' WITH GRANT OPTION;
FLUSH PRIVILEGES;
# 2025年12月26日 20:18:41 在新达虚拟机 ubuntu22server 安装的 mysql8.0
# 登录账号密码:admin/chanchaw,端口号3307
安装8.2
下面方法来自 Grok,注意先设置好使用代理网络
wget https://dev.mysql.com/get/mysql-apt-config_0.8.36-1_all.deb
sudo dpkg -i mysql-apt-config_*.deb
# 运行上面命令后选择 server & cluster,但是8.2貌似不是长期稳定版本,所以这里没有显示
sudo apt install -y mysql-server mysql-client mysql-shell
# 精确指定是8.2版本,执行后提示没有找到8.2,实际安装的是8.0
sudo apt install -y mysql-server=8.2.*
# 查看版本号
mysql --version
# 执行安全设定(强烈推荐)
sudo mysql_secure_installation
# 检查服务状态
sudo systemctl status mysql
# 开机自动启动(通常已经设定好了)
sudo systemctl enable mysql
# 登入測試(Ubuntu 24.04 預設用 socket 認證)
sudo mysql
# 通过该上面命令可以不用输入密码登录进入mysql,通过下面方法修改登录密码
# 注意下面是两行代码
ALTER USER 'root'@'localhost' IDENTIFIED WITH caching_sha2_password BY 'chanchaw';
FLUSH PRIVILEGES;
# 退出mysql
exit
# 重新以密码方式登录
mysql -u root -p
# 提示输入密码后登录
# 如果你之後遇到某些舊版工具/語言連不上,可以改用 mysql_native_password,但不建議長期使用
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '你的強密碼';
FLUSH PRIVILEGES;
# 设置局域网其他电脑可以连接
sudo vim /etc/mysql/mysql.conf.d/mysqld.cnf
# 打开配置文件后找到如下配置项,修改IP地址
bind-address = 0.0.0.0
# 重启服务
sudo systemctl restart mysql
# 新增一个局域网连接用户并设置权限
# 先以密码方式登录
mysql -u root -p
-- 方法A:允許整個 192.168.1.0/24 網段(最常見的家用/公司內網)
CREATE USER 'lanuser'@'192.168.0.%' IDENTIFIED BY 'chanchaw';
-- 方法B:允許任何 IP(不推薦,除非你有強防火牆)
-- CREATE USER 'lanuser'@'%' IDENTIFIED BY '你的密碼';
-- 給予權限(這裡給全部權限,生產環境請依需求縮小)
GRANT ALL PRIVILEGES ON *.* TO 'lanuser'@'192.168.0.%' WITH GRANT OPTION;
-- 或是只給特定資料庫
-- GRANT ALL PRIVILEGES ON mydatabase.* TO 'lanuser'@'192.168.1.%';
FLUSH PRIVILEGES;
# 防火墙放心端口
# 只允許特定內網網段(推薦)
sudo ufw allow from 192.168.0.0/24 to any port 3306 proto tcp
# 或是允許全部(測試用,不安全)
# sudo ufw allow 3306/tcp
sudo ufw reload
sudo ufw status
# 同时设置iptables放行端口号
sudo iptables -A INPUT -p tcp --dport 3306 -j ACCEPT
sudo iptables -A INPUT -p udp --dport 3306 -j ACCEPT
下面是设置 root 可在局域网其他电脑上使用连接 mysql
# 在 u24s 中登录
sudo mysql -u root -p
# 设置局域网权限
-- 方法A:允許整個 192.168.x.x 網段(家用/公司內網最常見)
CREATE USER 'root'@'%' IDENTIFIED WITH caching_sha2_password BY 'chanchaw';
GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' WITH GRANT OPTION;
-- 方法B:允許任何 IP(安全性最差,只建議測試或有強防火牆)
-- CREATE USER 'root'@'%' IDENTIFIED WITH caching_sha2_password BY '你的超強密碼';
-- GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' WITH GRANT OPTION;
FLUSH PRIVILEGES;
