用自己的安装包,或者wget下载都行
下载地址为:MySQL
#1.下载8.0.31版本 #或者自己下载好压缩包上传
[root@web02 ~]# wget https://cdn.mysql.com//Downloads/MySQL-8.0/mysql-8.0.31-linux-glibc2.12-x86_64.tar.xz
#2.创建好需要用的目录
[root@web02 ~]# mkdir -p /data/mysqldata/
#3.解压下好的压缩包
[root@web02 ~]# tar xf mysql-8.0.31-linux-glibc2.12-x86_64.tar.xz
#4.更改名称并换路径
[root@web02 ~]# mv mysql-8.0.31-linux-glibc2.12-x86_64 /data/mysql-8.0.31
#5.添加组,添加用户,查看用户
[root@web02 /data/mysql-8.0.31]# groupadd mysql
[root@web02 /data/mysql-8.0.31]# useradd -r -g mysql mysql
[root@web02 /data/mysql-8.0.31]# id mysql
uid=997(mysql) gid=1001(mysql) 组=1001(mysql)
#6.赋予权限,检查
[root@web02 /data]# chown mysql:mysql -R /data/mysqldata
[root@web02 /data/mysql-8.0.31]# chmod 750 /data/mysqldata/ -R
[root@web02 /data]# ll -d mysqldata/
drwxr-x---. 2 mysql mysql 6 2月 17 10:29 mysqldata/
#7.配置环境
vim /etc/profile
export PATH=$PATH:/data/mysql-8.0.31/bin:/data/mysql-8.0.31/lib
#8.刷新
source /etc/profile
#9.编辑my.cnf 具体看自己需求
vim /etc/my.cnf
[mysql]
# 客户端默认字符集
default-character-set=utf8mb4
[client]
port=12580
socket=/var/lib/mysql/mysql.sock
[mysqld]
port=12580
server-id=12580
user=mysql
socket=/var/lib/mysql/mysql.sock
# 设置mysql的安装目录
basedir=/data/mysql-8.0.31 #你自己的安装路径
# 设置mysql数据库的数据的存放目录
datadir=/data/mysqldata/mysql #你自己创建的数据库文件存放路径
log-bin=/data/mysqldata/mysql/mysql-bin
innodb_data_home_dir=/data/mysqldata/mysql
innodb_log_group_home_dir=/data/mysqldata/mysql
character-set-server=utf8mb4
#lower_case_table_names=1
autocommit=1
# Disabling symbolic-links is recommended to prevent assorted security risks
symbolic-links=0
# Settings user and group are ignored when systemd is used.
# If you need to run mysqld under a different user or group,
# customize your systemd unit file for mariadb according to the
# instructions in http://fedoraproject.org/wiki/Systemd
# 接收的数据包大小
max_allowed_packet=20M
# 数据库连接数
max_connections=4000
# 查询缓存开关(默认关闭)
#query_cache_type=0
# 查询缓存大小
#query_cache_size=32M
# 区分大小写开关(默认区分,1:不区分,0:区分)
#lower_case_table_names=1
sql_mode=STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_ENGINE_SUBSTITUTION
[mysqld_safe]
#设置mysql数据库的日志及进程数据的存放目录
log-error=/data/mysqldata/mysql/mysql.log
pid-file=/data/mysqldata/mysql/mysql.pid
sql_mode=STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_ENGINE_SUBSTITUTION
#1.数据化初始化
#8初始化MySQL (报错 执行 yum install -y libaio )
yum install -y libaio
cd /data/mysql-8.0.31/bin/
./mysqld --defaults-file=/etc/my.cnf --basedir=/data/mysql-8.0.31/ --datadir=/data/mysqldata/mysql --user=mysql --initialize
注意这种会生成一个12位,4种密码复杂度临时管理员密码. 第一次登陆需要修改.
./mysqld --defaults-file=/etc/my.cnf --basedir=/data/mysql-8.0.31/ --datadir=/data/mysqldata/mysql --user=mysql --initialize-insecure
注意这种管理员密码就为空
重点知识2: --initialize和--initialize-insecure区别
--initialize: 会生成一个12位,4种密码复杂度临时管理员密码. 第一次登陆需要修改.
--initialize-insecure:管理员密码为空. 如果生成密码切记
#9.启动mysql
# .复制 mysql.server 文件
cp /data/mysql-8.0.31/support-files/mysql.server /etc/init.d/mysql
cp /data/mysql-8.0.31/support-files/mysql.server /etc/init.d/mysqld
# .赋予权限
chown 777 /etc/my.cnf
chmod +x /etc/init.d/mysql
chmod +x /etc/init.d/mysqld
# .检查一下/var/lib/mysql是否存在,否进行创建
mkdir /var/lib/mysql
#目录和my.cnf保持一致
# .赋予权限
chown -R mysql:mysql /var/lib/mysql/
#目录和my.cnf保持一致
# .启动数据库
service mysql start #或者 systemctl mysql start 或者 /etc/init.d/mysql start
如果报错;修改 /etc/init.d/mysql 里面的 basedir 和datadir的路径,看步骤7里面的配置
10.修改初始密码
cd /data/mysql-8.0.31/bin
./mysql -uroot -p
输入临时密码
## 前面生成的密码
# 修改root密码 修改root用户只能本地连接
ALTER USER 'root'@'localhost' IDENTIFIED with mysql_native_password BY 'hua##123';
#刷新权限
flush privileges;
##编写systemctl文件
[root@web02 /data/mysql-8.0.31/bin]# cat /etc/systemd/system/mysqld.service
[Unit]
Description=MySQL Server
Documentation=man:mysqld(8)
Documentation=http://dev.mysql.com/doc/refman/en/using-systemd.html
After=network.target
After=syslog.target
[Install]
WantedBy=multi-user.target
[Service]
User=mysql
Group=mysql
ExecStart=/data/mysql-8.0.31/bin/mysqld --defaults-file=/etc/my.cnf
LimitNOFILE=5000
##刷新
[root@web02 /data/mysql-8.0.31/bin]# systemctl daemon-reload
[root@web02 /data/mysql-8.0.31/bin]# systemctl status mysqld.service
● mysqld.service - MySQL Server
Loaded: loaded (/etc/systemd/system/mysqld.service; enabled; vendor preset: disabled)
Active: active (running) since 五 2023-02-17 13:25:33 CST; 3min 27s ago
#开启自起并且处于运行的状态
或扩展(MySQL开机自启动)
#1.查看是否有mysql服务
chkconfig --list
#2.进入mysql软件目录,复制mysql.server文件到 /etc/rc.d/init.d目录下
cp /data/mysql-8.0.31/support-files/mysql.server /etc/rc.d/init.d/mysql
#3.给/etc/rc.d/init.d/mysql赋权可执行权限
chmod +x /etc/rc.d/init.d/mysql
#4.添加mysql服务
chkconfig --add mysql
#5.使mysql服务开机自启
chkconfig --level 345 mysql on
#6.查看MySQL服务 ,重启服务器,测试是否成功。
chkconfig --list