二进制部署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 -g mysql mysql
创建数据及日志目录:
[root@localhost ~]# mkdir /var/lib/mysql
[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
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
After=network.target remote-fs.target nss-lookup.target
[Service]
Type=forking
ExecStart=/usr/local/mysql/support-files/mysql.server start
ExecReload=/usr/local/mysql/support-files/mysql.server restart
ExecStop=/usr/local/mysql/support-files/mysql.server stop
PrivateTmp=false
[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登录了
[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;
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 25岁的心里话
· 闲置电脑爆改个人服务器(超详细) #公网映射 #Vmware虚拟网络编辑器
· 零经验选手,Compose 一天开发一款小游戏!
· 通过 API 将Deepseek响应流式内容输出到前端
· 因为Apifox不支持离线,我果断选择了Apipost!