(亲测)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.cnfbasedir/my.cnfdatadir/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 |
+-----------+------------------+-----------------------+