centos6.9离线安装MySQL8.0.22

395 阅读3分钟

(亲测)centos6.9离线安装MySQL8.0.22

记一次服务器数据库安装,没有网络环境,只能离线。安装前请安装依赖包。

1. 下载MySQL8.0.22

2. 上传至服务器/soft路径

[root@MySQL-Test ~]# cd ..
[root@MySQL-Test /]# mkdir soft

3. 将mysql文件夹移动到/usr/local

[root@MySQL-Test /]#mv /soft/mysql-8.0.22-linux-glibc2.12-x86_64 /usr/local/mysql

4. 创建data文件夹

[root@MySQL-Test /]# cd /usr/local/mysql
[root@MySQL-Test mysql]# mkdir ./data

5. 创建mysql用户及用户组

#用户组
[root@MySQL-Test mysql]# groupadd mysql
#用户 (用户名/密码)
[root@MySQL-Test mysql]# useradd -g mysql mysql

#授权
chown -R mysql:mysql /usr/local/mysql/ 
或
chown -R mysql .
chgrp -R mysql .

6. 移动并配置my.cnf文件

mv ./etc/my.cnf /etc/my.cnf
[mysqld]
#设置3306端口
port=3306
#设置mysql的安装目录
basedir=/usr/local/mysql
#设置mysql数据库的数据的存放目录
datadir=/usr/local/mysql/data
#允许最大连接数
max_connections=200
#允许连接失败的次数。
max_connect_errors=10
#服务端使用的字符集默认为UTF8
character-set-server=utf8
#创建新表时将使用的默认存储引擎
default-storage-engine=INNODB
#默认使用“mysql_native_password”插件认证,因为mysql8的密码规范不同,此处设置为老版
#mysql_native_password
default_authentication_plugin=mysql_native_password
default-time-zone='+08:00'
#sql_mode="STRICT_TRANS_TABLES,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION"
log-error = /usr/local/mysql/data/error.log
lower_case_table_names=1
  
[mysql]
#设置mysql客户端默认字符集
default-character-set=utf8
    
[client]
#设置mysql客户端连接服务端时默认使用的端口
port=3306
default-character-set=utf8

可能会有好几个地方有 mysql 的配置文件,它的读取顺序是这样的

/etc/my.cnf basedir/my.cnf datadir/my.cnf –defaults-extra-file #在读取全局配置文件之后,读取用户配置文件 (~/.my.cnf)之前,读取extra指定的参数文件 ~/.my.cnf 所以我们在 /etc 下的配置文件 my.cnf 是第一个读取的文件,读到这个文件后就不会在读后面路劲中的配置文件。

7.初始化数据库

./bin/mysqld --user=mysql --basedir=/usr/local/mysql/ --datadir=/usr/local/mysql/data/ --initialize

会得到临时密码,如果窗口没返回,则去error.log日志中找。日志地址默认在data中,或者my.cnf中配置

8. 创建mysql服务

#添加Mysql到系统服务
[root@MySQL-Test mysql]# cp -a ./support-files/mysql.server /etc/init.d/mysqld
[root@MySQL-Test mysql]# chmod +x /etc/init.d/mysql
[root@MySQL-Test mysql]# chkconfig --add mysql
#检查服务是否生效
[root@MySQL-Test mysql]# chkconfig --list mysql
mysqld         	0:关闭	1:关闭	2:启用	3:启用	4:启用	5:启用	6:关闭

9. 启动MySQL服务

#启动
[root@MySQL-Test mysql]# service mysqld start
Starting MySQL. SUCCESS!
#查看启动状态
[root@MySQL-Test mysql]# service mysqld status
 SUCCESS! MySQL running (4671)

10. 登陆MySQL

#密码为前面的临时密码
[root@MySQL-Test mysql]# mysql -uroot -p
Enter password:
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 8
Server version: 8.0.22

Copyright (c) 2000, 2020, Oracle and/or its affiliates. All rights reserved.

Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

mysql>

如果提示找不到mysql命令,则执行ln -s /usr/local/mysql/bin/mysql /usr/bin

11. 修改密码

mysql> ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'password';
Query OK, 0 rows affected (0.02 sec)

12. 远程连接

远程连接操作不应该修改mysql中user表中用户为root的记录,而是创建一条root记录

授权 root 用户的所有权限并设置远程访问

mysql> CREATE USER 'root'@'%' IDENTIFIED BY 'password';
mysql> ALTER USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY 'password';
mysql> GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' WITH GRANT OPTION ;
mysql> flush privileges;
#查看用户及密码规则
mysql>select host,user,plugin from user;
+-----------+------------------+-----------------------+
| host      | user             | plugin                |
+-----------+------------------+-----------------------+
| %         | root             | mysql_native_password |
| localhost | mysql.infoschema | caching_sha2_password |
| localhost | mysql.session    | caching_sha2_password |
| localhost | mysql.sys        | caching_sha2_password |
| localhost | root             | mysql_native_password |
+-----------+------------------+-----------------------+