mysql-8.0.31-glibc2.12-x86_64.tar.xz 离线安装mysql8.0

离线安装mysql8.0

  • 安装
  • 配置服务
  • 修改配置
  • 允许远程登录

安装

  1. 首先,下载MySQL 8.0.31的适用于Linux的安装程序,例如mysql-8.0.31-glibc2.12-x86_64.tar.xz。
  2. 解压缩安装程序:tar -xvf mysql-8.0.31-glibc2.12-x86_64.tar.xz
  3. 将MySQL移动到安装目录:sudo mv mysql-8.0.31-glibc2.12-x86_64 /usr/local/mysql
  4. 创建MySQL用户和用户组:sudo groupadd mysqlsudo useradd -r -g mysql -s /bin/false mysql
  5. 授予MySQL用户对MySQL目录的访问权限:sudo chown -R mysql:mysql /usr/local/mysql
  6. 同样创建目录/var/run/mysqld和/var/run/mysqld,并对其授权
  7. 先把/etc/my.cnf文件备份(然后改成别的名),因为新机器可能有这个文件,否则可能按这个启动配置
  8. 为MySQL设置密码:sudo /usr/local/mysql/bin/mysqld --initialize --user=mysql --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data
  9. 启动MySQL:sudo /usr/local/mysql/bin/mysqld_safe --user=mysql & (此时会生成一个默认密码,记住这个密码 /usr/local/mysql/bin/mysql -uroot -p用这个密码就能登录了)
  10. 修改密码:ALTER USER ‘root’@‘localhost’ IDENTIFIED BY ‘{新密码}’; 但我们可能不这么做,而是用这种方式ALTER USER ‘root’@’localhost’ IDENTIFIED WITH mysql_native_password BY ‘新密码’ ; 因为我们的连接工具不支持8.0新版本的caching_sha2_password,还是用mysql_native_password为好。
  11. 停服务:启动是用mysqld_safe,停止用/usr/local/mysql/bin/mysqladmin -uroot -p shutdown (然后输入密码) 因为后面创建服务启动时,会冲突,要提前停掉

配置服务

  1. 创建MySQL配置文件:sudo vi /etc/my.cnf
  2. 输入以下内容:
[client]
port=3306
default-character-set = utf8mb4
[mysql]
default-character-set = utf8mb4
[mysqld]
port=3306
pid-file=/var/run/mysqld/mysqld.pid
socket=/var/run/mysqld/mysqld.sock
basedir=/usr/local/mysql
datadir=/usr/local/mysql/data
log-error=/var/run/mysqld/error.log
character-set-server = utf8mb4
collation-server = utf8mb4_unicode_ci
max_connections=512
max_connect_errors=500
default-storage-engine=INNODB
default_authentication_plugin=mysql_native_password

  1. 创建MySQL服务文件:sudo vi /usr/lib/systemd/system/mysqld.service
  2. 输入以下内容:
[Unit]
Description=MySQL Server
After=network.target

[Service]
User=mysql
Group=mysql
ExecStart=/usr/local/mysql/bin/mysqld_safe --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data --pid-file=/var/run/mysqld/mysqld.pid --socket=/var/run/mysqld/mysqld.sock
ExecStop=/usr/local/mysql/bin/mysqladmin --user=root --password=your_password shutdown
Restart=always

[Install]
WantedBy=multi-user.target

  1. 重新加载系统服务:sudo systemctl daemon-reload
  2. 启动MySQL服务:sudo systemctl start mysqld
  3. 验证MySQL服务是否正在运行:sudo systemctl status mysqld

修改配置

  1. 启动可能报错“Can't connect to local MySQL through socket '/tmp/mysql.sock'”,这时可以创建个软链接,这要看my.cnf中sock的配置,我这边改成sudo ln -s /var/run/mysqld/mysqld.sock /tmp/mysql.sock,然后重启服务sudo systemctl restart mysqld

允许远程登录

要允许MySQL远程登录,需要进行以下步骤:

  1. 登录到MySQL服务器并打开MySQL shell:mysql -u root -p

  2. 输入密码以登录。

  3. 创建一个新的MySQL用户并授予其远程登录权限。例如,要创建名为“remoteuser”的用户并授予其远程登录权限,请运行以下命令:

    CREATE USER 'remoteuser'@'%' IDENTIFIED BY 'password';
    GRANT ALL PRIVILEGES ON *.* TO 'remoteuser'@'%';
    FLUSH PRIVILEGES;
    
    

    这将创建一个名为“remoteuser”的用户,并授予它在所有数据库和所有表上的所有权限。请注意,“%”符号表示允许从任何IP地址连接到MySQL服务器。

你可能感兴趣的:(mysql,数据库)