linux直接下载安装mysql8

linux直接下载安装mysql8

下载并解压

下载地址:https://dev.mysql.com/get/Downloads/

mkdir /opt/mysql8
wget https://dev.mysql.com/get/Downloads/MySQL-8.0/mysql-8.0.40-linux-glibc2.28-x86_64.tar.xz
tar -xJvf mysql-8.0.40-linux-glibc2.28-x86_64.tar.xz
mv mysql-8.0.40-linux-glibc2.28-x86_64 mysql-8.0.40

安装和初始化

创建MySQL用户和用户组(如果需要)

出于安全考虑,建议为MySQL创建一个专门的用户和用户组。可以使用groupadd和useradd命令来创建它们:

sudo groupadd mysql  
sudo useradd -r -g mysql -s /bin/false mysql

设置目录权限

将MySQL目录及其子目录的所有者更改为新创建的mysql用户和用户组:

sudo chown -R mysql:mysql .

注意这里的.表示当前目录,即MySQL目录。

初始化数据库

使用mysqld命令来初始化MySQL数据库。在MySQL目录中,您应该能找到bin子目录,其中包含了mysqld可执行文件:

sudo ./bin/mysqld --initialize --user=mysql --basedir=$(pwd) --datadir=$(pwd)/data

$(pwd)命令将返回当前工作目录的路径,这里用作--basedir和--datadir的参数。
注意最后一行会产生root账号的临时密码

启动MySQL服务

您可以直接在当前目录中启动MySQL服务,但通常更好的做法是将MySQL配置为系统服务。不过,为了简单起见,这里展示如何在当前目录中启动MySQL:

sudo ./bin/mysqld_safe --user=mysql &

配置MySQL(可选)

在启动MySQL服务后,您可能需要配置一些基本的MySQL设置。这可以通过编辑MySQL的配置文件(在当前目录的my.cnf或../my.cnf中,如果不存在则需要创建)或使用mysql_secure_installation脚本来完成。

./bin/mysql_secure_installation

如果紧接着使用此脚本会要求输入上面的临时密码并修改密码,然后做一些初始化操作

设置环境变量

# 将MySQL的bin目录添加到PATH环境变量中
export MYSQL_HOME=/opt/mysql8/mysql-8.0.40
export PATH=$MYSQL_HOME/bin:$PATH

# 将环境变量设置添加到~/.bashrc文件中
echo "export MYSQL_HOME=/opt/mysql8/mysql-8.0.40" >> ~/.bashrc
echo "export PATH=\$MYSQL_HOME/bin:\$PATH" >> ~/.bashrc

# 刷新~/.bashrc文件以应用更改
source ~/.bashrc

# 可选:检查环境变量是否设置正确
echo "MYSQL_HOME: $MYSQL_HOME"
echo "PATH: $PATH"

添加服务

创建MySQL的systemd服务文件

cp -a ./support-files/mysql.server /etc/init.d/mysql
chmod +x /etc/init.d/mysql
chkconfig --add mysql

可能需要创建pid目录并授权

mkdir /var/run/mysqld
chown -R mysql:mysql /var/run/mysqld

启动MySQL服务

你可以手动启动MySQL服务以验证配置是否正确:

service mysql start

验证MySQL服务状态:

使用以下命令检查MySQL服务是否已启动并正在运行:

service mysql status

连接到MySQL

使用mysql客户端工具连接到MySQL服务器。确保您在MySQL的bin目录中,或者将bin目录添加到您的PATH环境变量中:

mysql -u root -p

进入数据库

mysql -uroot -p

可能需要修改账号

select Host,User,authentication_string,plugin from user;
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'azi123...';
ALTER USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY 'azi123...';
-- UPDATE mysql.user SET host = '%' WHERE user='root' and host='localhost';
posted @ 2024-10-29 11:03  明月心~  阅读(592)  评论(0)    收藏  举报