Ubuntu24安装MySQL
- 下载deb包:
先更新系统包:
sudo apt update
sudo apt update -y
下载mysql:
wget https://dev.mysql.com/get/mysql-apt-config_0.8.17-1_all.deb
- 安装deb包:
sudo dpkg -i mysql-apt-config_0.8.17-1_all.deb
目前mysql还没有正式支持Ubuntu 24 LTS,所以显示“ubuntu focal":
选择"mysql-8.0" 版本:
确认工具和连接器的配置(默认启用):
确认配置:
3. 安装MySQL
添加了mysql apt库,所以更新包:
sudo apt update
安装MySQL:
sudo apt-get install mysql-server
- 检查是否安装成功:
mysqld --version #查看版本
sudo systemctl start mysql #启动mysql
sudo systemctl status mysql #查看mysql状态
sudo systemctl enable mysql #使mysql在系统启动时自启动
sudo netstat -tnupl| grep mysql #查看3306端口是否监听
- 进行基础的安全配置:
运行MySQL安全安装脚本,
$ sudo mysql_secure_installation
Remove anonymous users? [Y/n] #是否删除匿名用户,生产环境建议删除,
Disallow root login remotely? [Y/n] #是否禁止root远程登录,建议禁止,
Remove test database and access to it? [Y/n] #是否删除test数据库,删除,
Reload privilege tables now? [Y/n] #是否重新加载权限表,是,
… Success!
- 默认密码为空,修改mysql密码:
sudo mysql -uroot -p
ALTER USER 'root'@'localhost' IDENTIFIED BY '密码';
flush privileges;
- 根据需要修改设置,以下是MySQL默认配置路径:
/var/lib/mysql/ #数据库目录
/etc/my.cnf /etc/mysql/my.cnf ~/.my.cnf #配置文件
/usr/bin(#mysql,mysqladmin、mysqldump等命令
/usr/lib/systemd/system/mysql.service #启动脚本
- 以上步骤完成后我的启动出现了报错:
$ mysql -uroot -p
Enter password:
ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/tmp/mysql.sock' (2)
查看mysql状态、检查端口:
$ systemctl status mysql
● mysql.service - MySQL Community Server
Loaded: loaded (/usr/lib/systemd/system/mysql.service; enabled; preset: enabled)
Active: active (running) since Tue 2024-11-05 10:15:36 CST; 51min ago
Main PID: 395868 (mysqld)
Status: "Server is operational"
Tasks: 39 (limit: 629145)
Memory: 370.7M (peak: 385.3M)
CPU: 25.467s
CGroup: /system.slice/mysql.service
└─395868 /usr/sbin/mysqld
$ sudo netstat -tnupl| grep mysql
tcp 0 0 127.0.0.1:3306 0.0.0.0:* LISTEN 395868/mysqld
tcp 0 0 127.0.0.1:33060 0.0.0.0:* LISTEN 395868/mysqld
显示mysql服务已启动、端口也运行正常,可能是命令没链接到对应的mysql启动文件,所以手动添加链接:
首先打开mysqld.cnf,注释掉
sudo vim /etc/mysql/mysql.conf.d/mysqld.cnf
socket = /var/run/mysqld/mysqld.sock #找到socket的路径设置然后注释掉
:w !sudo tee % #保存
手动创建链接:
sudo ln -s /var/run/mysqld/mysqld.sock /tmp/mysql.sock
重启:
sudo systemctl restart mysql
重试:
mysql -uroot -p
登陆成功,报错解决。
参考博文