前言
在bztc110机器中安装mysql9。
一、下载
到mysql官网(https://dev.mysql.com/downloads/mysql/)下载mysql-9.0.1-linux-glibc2.28-aarch64.tar.xz。
如图:
二、安装
1. 上传安装包
将安装包上传到bztc110机器。
我是上传到了/root目录下,如图:
2. 解压
将下载的文件解压到指定目录,例如 /usr/local:
sudo tar -xvf mysql-9.0.1-linux-glibc2.28-aarch64.tar.xz -C /usr/local
如果出现错误:sudo: tar: command not found
则执行:
dnf -y install tar
3. 创建符号链接(可选)
为了方便管理,可以创建一个符号链接将 mysql-9.0.1-linux-glibc2.28-aarch64 指向更通用的目录名:
sudo ln -s /usr/local/mysql-9.0.1-linux-glibc2.28-aarch64 /usr/local/mysql
如图:
4. 创建 MySQL 用户和组
为了安全起见,建议为 MySQL 创建专用的用户和组:
sudo groupadd mysql
sudo useradd -r -g mysql -s /bin/false mysql
5. 初始化数据库
初始化数据库目录并设置正确的权限:
sudo mkdir /usr/local/mysql/data
sudo chown -R mysql:mysql /usr/local/mysql
cd /usr/local/mysql
sudo bin/mysqld --initialize --user=mysql --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data
6. 设置 MySQL 配置文件
创建 MySQL 配置文件 my.cnf:
vim /etc/my.cnf
以下内容复制到my.cnf中,根据需要调整配置,尤其是 [mysqld] 部分。例如:
[mysqld]
basedir = /usr/local/mysql
datadir = /usr/local/mysql/data
port = 3306
socket = /usr/local/mysql/mysql.sock
user = mysql
[client]
socket = /usr/local/mysql/mysql.sock
7. 设置系统服务
7.1 创建 MySQL systemd 服务文件
创建一个名为 mysql.service 的文件,并将其放置在 /etc/systemd/system/ 目录下:
sudo nano /etc/systemd/system/mysql.service
如果出现错误:sudo: nano: command not found
则执行:
dnf -y install nano
7.2 添加服务配置
在 mysql.service 文件中,添加以下内容:
[Unit]
Description=MySQL Server
After=network.target
[Service]
Type=simple
User=mysql
Group=mysql
ExecStart=/usr/local/mysql/bin/mysqld --defaults-file=/etc/my.cnf
ExecStop=/usr/local/mysql/bin/mysqladmin shutdown
Restart=on-failure
RestartSec=5s
[Install]
WantedBy=multi-user.target
确保 ExecStart 和 ExecStop 路径指向你的 MySQL 二进制文件的位置,–defaults-file 指向你的 MySQL 配置文件。
7.3 重新加载 systemd 配置
保存并关闭文件后,重新加载 systemd 配置以使新的服务文件生效:
sudo systemctl daemon-reload
8. 启动 MySQL 服务
启动:
sudo systemctl start mysql
检查是否已启动:
systemctl status mysql
成功的话如图:
9. 设置开机自启动
sudo systemctl enable mysql
10. 设置环境变量
为了方便使用 MySQL 工具,可以将 MySQL 的 bin 目录添加到系统的 PATH 中。在 .bashrc 或 .bash_profile 文件中添加:
export PATH=$PATH:/usr/local/mysql/bin
然后加载新的配置:
source ~/.bashrc
11. 设置 MySQL 根密码
使用以下命令登录 MySQL 并设置根用户的密码:
sudo /usr/local/mysql/bin/mysql_secure_installation
12. 验证 MySQL 安装
再次验证 MySQL 是否正常工作:
mysql -u root -p
三、遇到问题
1. mysqladmin: connect to server at ‘localhost’ failed
mysqladmin: connect to server at 'localhost' failed
error: 'Access denied for user 'root'@'localhost' (using password: NO)'
解决:
(1). kill掉mysql进程
(2). 加上目录权限
sudo chown -R mysql:mysql /usr/local/mysql-9.0.1-linux-glibc2.28-aarch64
(3). 开启免密码登陆
在【mysqld】模块下面添加:skip-grant-tables 保存退出。
vim /etc/my.cnf
(4). 重启服务
service mysql restart
(5). 不输入密码登陆
mysql -u root -p //不输入密码直接敲回车键
(6). 刷新规则允许外部访问
use mysql;
update user set host = '%' where user = 'root';
FLUSH PRIVILEGES;
(7). 更新 mysql.user 表中的密码为null
UPDATE mysql.user SET authentication_string = NULL WHERE User = 'root';
FLUSH PRIVILEGES;
(8). 重启 MySQL 服务器
完成以上步骤后,停止并重启 MySQL 服务器,以便退出 --skip-grant-tables 模式并应用新的配置。
在【mysqld】模块下面删除:skip-grant-tables 保存退出。
vim /etc/my.cnf
重启:
sudo systemctl stop mysql
sudo systemctl start mysql
(9). 登录并设置新密码
使用无密码的 root 账户登录 MySQL:
mysql -u root
然后使用 ALTER USER 语句设置新密码:
ALTER USER 'root'@'%' IDENTIFIED BY '新密码';
(10). 使用 mysql_secure_installation 进行安全设置
最后,运行 mysql_secure_installation 工具来进一步加强 MySQL 的安全性:
sudo /usr/local/mysql/bin/mysql_secure_installation
总结
mysql安装过程中可能出现很多问题,出现问题不要着急,一个一个解决。