一. 准备
服务器:阿里云Centos Stream 9
Mysql:mysql-8.0.37-linux-glibc2.28-x86_64.tar.xz
下载地址:https://dev.mysql.com/downloads/mysql/
二. 步骤
1. 下载安装包
首先,你需要从MySQL的官方网站或其他可信源下载mysql-8.0.37-linux-glibc2.28-x86_64.tar.xz
这个安装包。
2. 解压安装包
将下载的安装包解压到某个目录,比如/usr/local/
。你可以使用以下命令:
tar -xvf mysql-8.0.37-linux-glibc2.28-x86_64.tar.xz -C /usr/local/
解压后,你会在/usr/local/
目录下看到一个名为mysql-8.4.0-linux-glibc2.28-x86_64
的文件夹。
3. 创建软连接
为了方便管理和访问,你可以创建一个符号链接指向解压后的MySQL目录:
ln -s /usr/local/mysql-8.0.37-linux-glibc2.28-x86_64 /usr/local/mysql
现在你可以通过/usr/local/mysql
来访问MySQL的安装目录了
4. 创建mysql用户和组
groupadd mysql # 添加1个名字为mysql的组名
useradd -r -g mysql -s /bin/false mysql # #这里是创建一个mysql用户用于承载mysql服务,但是不需要登录权限。
(useradd 指令中:第一个mysql代表组名, 第二个mysql代表用户名)
创建一个名为 mysql 的系统用户,其主组为 mysql,并且不允许登录(因为登录shell被设置为 /bin/false)
-r: 创建一个系统用户。系统用户通常没有登录shell,并且用于运行系统服务或进程。
-g mysql: 将新用户的主组设置为 mysql。
-s /bin/false: 设置新用户的登录shell为 /bin/false。这意味着如果用户尝试登录,/bin/false 会立即退出,从而阻止用户登录。这常用于系统用户,因为系统用户通常不需要登录。
PS: 这里创建的mysql用户在后面的5和6中都会用到,这也会产生一个问题,比如后续用root用户(这里root是服务器登录的root,不是mysql层次的!!!)在服务器中创建了一个文件夹,必须改成mysql用户的权限,才能写入。
如下:如果指定错误日志的位置,必须配置权限,因为默认是 root创建的。(配置文件中指定的日志位置的话,需要执行下面的话)
mkdir -p /usr/local/mysql/log/
chown -R mysql:mysql /usr/local/mysql/log/
chmod -R 755 /usr/local/mysql/log/
5. 准备数据目录,并配置权限
创建一个数据目录用于存放MySQL的数据库文件,并设置适当的权限:
sudo mkdir /usr/local/mysql/data
sudo chown -R mysql:mysql /usr/local/mysql
sudo chmod 755 /usr/local/mysql/data
(chown指令:将 mysql 这个文件或目录的所有者更改为 mysql 用户,并将其组更改为 mysql组,第一个mysql代表用户名,第二个mysql代表组名)
(chmod指令:文件拥有者权限:可读可写可执行 同组者权限:可读可写 他人权限: 无)
6. 初始化数据库
使用mysqld
工具初始化数据库:
sudo /usr/local/mysql/bin/mysqld --initialize --user=mysql --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data
注意:这个命令会生成一个临时密码,用于首次登录MySQL。请确保记下这个密码,稍后在登录时会用到。
7. 配置mysql服务–(以便使用9中的指令)
你可以使用systemd
来配置MySQL作为服务运行。首先,创建一个systemd服务文件:
touch /etc/systemd/system/mysqld.service
然后,将以下内容粘贴到文件中:保存
[Unit]
Description=MySQL Server
After=network.target
After=syslog.target
[Install]
WantedBy=multi-user.target
[Service]
User=mysql
Group=mysql
ExecStart=/usr/local/mysql/bin/mysqld --defaults-file=/etc/my.cnf
Restart=on-abort
PrivateTmp=false
8. 创建配置文件
创建一个基本的MySQL配置文件(如果不存在)
touch /etc/my.cnf
然后,根据你的需求添加配置选项。至少,你应该设置basedir
和datadir
:
[mysqld]
basedir=/usr/local/mysql
datadir=/usr/local/mysql/data
#错误日志
#log-error=/usr/local/mysql/log/mysql_error.log
9 启动mysql服务
systemctl start mysqld
可以设置开机自动启动
systemctl enable mysqld
10. 登录mysql并修改密码
使用之前初始化时生成的临时密码登录MySQL
/usr/local/mysql/bin/mysql -u root -p
登录后,使用以下SQL命令修改root用户的密码:
alter user 'root'@'localhost' identified by '123456'; #修改root用户的密码
PS: 手动复制上面代码,不带分号,然后手动敲入分号,执行成功,否则直接全部复制,可能执行失败。
11. 配置远程访问
如果你打算从远程机器访问MySQL,你需要修改MySQL的用户权限表,允许远程连接。这通常涉及到修改user
use mysql;
update user set host='%' where user='root';
flush privileges;
PS: 手动复制上面代码,不带分号,然后手动敲入分号,执行成功,否则直接全部复制,可能执行失败。
三. 其他指令
启动MySQL服务:
systemctl start mysqld
关闭MySQL服务:
systemctl stop mysqld
重启MySQL服务:
systemctl restart mysqld
查看MySQL服务状态:
systemctl status mysqld
设置MySQL服务开机自启:
systemctl enable mysqld
禁止MySQL服务开机自启:
systemctl disable mysqld
查看MySQL服务是否开机启动:
systemctl is-enabled mysqld
!
作 者 : Yaopengfei(姚鹏飞)
博客地址 : http://www.cnblogs.com/yaopengfei/
声 明1 : 如有错误,欢迎讨论,请勿谩骂^_^。
声 明2 : 原创博客请在转载时保留原文链接或在文章开头加上本人博客地址,否则保留追究法律责任的权利。