二进制部署MySQL8🌵

下载安装包:

[root@localhost ~]# wget https://downloads.mysql.com/archives/get/p/23/file/mysql-8.0.30-linux-glibc2.12-x86_64.tar.xz

下载依赖:

[root@localhost ~]# yum -y install libaio

解压安装:

[root@localhost ~]# tar -xvf mysql-8.0.30-linux-glibc2.12-x86_64.tar.xz -C /usr/local/
[root@localhost ~]# cd /usr/local
[root@localhost local]# mv mysql-8.0.30-linux-glibc2.12-x86_64/  mysql

创建mysql用户及组:

[root@localhost ~]# groupadd mysql
[root@localhost ~]# useradd -r -g mysql -s /sbin/nologin mysql

创建数据及日志目录:

[root@localhost ~]# mkdir /var/lib/mysql
[root@localhost ~]# mkdir /var/lib/mysql/data
[root@localhost ~]# chown -R mysql:mysql /var/lib/mysql
[root@localhost ~]# mkdir /var/log/mysql
[root@localhost ~]# chown -R mysql:mysql /var/log/mysql

创建MySQL配置文件:

[root@localhost ~]# vim /etc/my.cnf
[client]
# 默认连接 MySQL 时使用的字符集
default-character-set=utf8mb4
socket=/var/lib/mysql/mysql.sock


[mysqld]
user=mysql
socket=/var/lib/mysql/mysql.sock
port=3306
pid-file=/var/lib/mysql/mysql.pid
basedir=/usr/local/mysql
datadir=/var/lib/mysql/data

lower_case_table_names = 1

#日志配置
log-error=/var/log/mysql/error.log
slow-query-log=1
slow-query-log-file=/var/log/mysql/mysql-slow.log
long_query_time=2
binlog_expire_logs_seconds=604800

# 字符集设置及排序规则
character-set-server=utf8mb4
collation-server=utf8mb4_general_ci

配置MySQL环境变量:

[root@localhost ~]# vim /etc/profile
export PATH=$PATH:/usr/local/mysql/bin
[root@localhost ~]# source /etc/profile

初始化MySQL:

[root@localhost ~]# /usr/local/mysql/bin/mysqld  --defaults-file=/etc/my.cnf --initialize-insecure --user=mysql

启动MySQL:

[root@localhost ~]# /usr/local/mysql/bin/mysqld_safe --defaults-file=/etc/my.cnf &

使用system管理MySQL(推荐):

[root@localhost ~]# vim /usr/lib/systemd/system/mysql.service
[Unit]
Description=MySQL Server
After=network.target remote-fs.target nss-lookup.target

[Service]
Type=simple
User=mysql
Group=mysql
ExecStart=/usr/local/mysql/bin/mysqld --defaults-file=/etc/my.cnf
LimitNOFILE=65535
LimitCORE=0
Restart=on-failure
RestartSec=10
PrivateTmp=true

[Install]
WantedBy=multi-user.target

开机自启MySQL:

[root@localhost ~]# systemctl daemon-reload
[root@localhost ~]# systemctl enable --now mysql

登录MySQL并修改密码:

本地首次使用sock文件登录mysql是不需要密码的。

[root@localhost ~]# mysql -S /var/lib/mysql/mysql.sock

mysql> alter user 'root'@'localhost' identified by '123456';
mysql> flush privileges;

如果修改密码之后,sock不能登录,可能是sock路径不对,可以尝试以下方法:

[root@localhost ~]# mysql -uroot -p
Enter password: 
ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/tmp/mysql.sock' (2)

解决方法:

[root@localhost ~]# ln -s /var/lib/mysql/mysql.sock   /tmp/mysql.sock

授予用户权限. 必须先要创建用户, 才能授权!!

mysql> create user 'nagao'@'localhost' identified by '123456';
mysql> grant all privileges on *.*  to 'nagao'@'localhost' with grant option;
posted @ 2022-12-02 14:26  Noleaf  阅读(213)  评论(0)    收藏  举报