使用MySQL二进制包安装MySQL8.0
使用MySQL二进制包安装MySQL8.0
yum / apt
源码
使用二进制包安装
shell 一键安装
容器化安装(Docker一键安装)
安装步骤
- 1.安装依赖环境
yum install -y libaio libaio-devel ncurses ncurses-devel openssl openssl-devel
- 2.下载二进制包
# 局域网内下载
wget http://192.168.56.200/Software/mysql-8.0.20-linux-glibc2.12-x86_64.tar.xz
#校验
md5sum mysql-8.0.20-linux-glibc2.12-x86_64.tar.xz
2acb6d9f1e590ff66cc5bae2378a964b mysql-8.0.20-linux-glibc2.12-x86_64.tar.xz
- 3.设置安装路径与权限
#解压
tar -xvf mysql-8.0.20-linux-glibc2.12-x86_64.tar.xz
#将mysql文件夹,剪切并改名
mv mysql-8.0.20-linux-glibc2.12-x86_64 /usr/local/mysql
#创建mysql用户
useradd mysql -M -s /sbin/nologin
# 创建data文件夹
# data文件夹是用于存储数据库文件,他的位置是在mysql目录下
mkdir /usr/local/mysql/data
# 更改mysql目录权限
chown mysql:mysql -R /usr/local/mysql
- 4.修改配置与初始化
#修改配置文件
vim /etc/my.cnf
#替换原内容
[myqld]
port = 3306
basedir = /usr/local/mysql
datadir = /usr/local/mysql/data
log-error = /usr/local/mysql/data/error.log
pid-file = /usr/local/mysql/data/mysql.pid
socket = /tmp/mysql.sock
character-set-server=utf8mb4
collation-server=utf8mb4_unicode_ci
default-storage-engine=InnoDB
default-authentication-plugin=mysql_native_password
sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES
# 执行初始化
/usr/local/mysql/bin/mysqld --initialize --user=mysql --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data
#运行结果
2025-08-01T01:59:17.884805Z 0 [System] [MY-013169] [Server] /usr/local/mysql/bin/mysqld (mysqld 8.0.20) initializing of server in progress as process 3007
2025-08-01T01:59:17.899074Z 1 [System] [MY-013576] [InnoDB] InnoDB initialization has started.
2025-08-01T01:59:18.475866Z 1 [System] [MY-013577] [InnoDB] InnoDB initialization has ended.
2025-08-01T01:59:19.172817Z 6 [Note] [MY-010454] [Server] A temporary password is generated for root@localhost: tpk:YphPw6-7
# tpk:YphPw6-7 是root的初始密码
#初始化完成后,启动MySQL
/usr/local/mysql/support-files/mysql.server start
#输出结果
Starting MySQL...... SUCCESS!
#查看3306端口
netstat -tuln | grep 3306
tcp6 0 0 :::3306 :::* LISTEN
tcp6 0 0 :::33060 :::* LISTEN
- 5.设置环境变量
# 修改系统环境变量
#这个是bash的操作方法
# 想要在任意目录执行mysql的命令需要修改/etc/profile
#PATH:可执行目录的命令路径
vim /etc/profile
# 在最后一行添加指定PATH关联MySQL的bin目录
export PATH=$PATH:/usr/local/mysql/bin
# 配置完成后让系统重新加载/etc/profie文件
source /etc/profile
--------------------------------------------
#这个是fish的操作方法
#打开 fish 的配置文件:
vim ~/.config/fish/config.fish
# 添加 mysql 路径到 PATH
set -gx PATH $PATH /usr/local/mysql/bin
#重新加载配置
source ~/.config/fish/config.fish
--------------------------------------------
- 6.修改密码
#使用初始密码登录MySQL
mysql -uroot -p'密码'
#修改密码
# 要修改的密码
alter user 'root'@'localhost' identified by 'root123';
\s 查看状态
\q 退出登录
#使用修改的密码的验证登陆
mysql -uroot -p'密码'
#fish 登陆数据库
mysql -u root -p --socket=/tmp/mysql.sock
- 7.设置开机启动
#设置开机自启动
# /etc/ini.d/mysqld
# 将启动脚本复制到/etc/init.d/目录,这是启动脚本的默认目录。
cp -a /usr/local/mysql/support-files/mysql.server /etc/init.d/mysqld
# 配置mysqld开机启动后,可以使用systemctl管理mysqld
systemctl enable mysqld #设置 MySQL 服务开机自启
systemctl restart mysqld #重启 MySQL 服务
systemctl status mysqld #查看 MySQL 服务当前状态
- 设置远程登陆
#服务端操作
#先本地登陆MySQL
mysql -uroot -p
# 创建远程登录账号
mysql> create user 'root'@'%' identified with mysql_native_password by 'root123';
Query OK, 0 rows affected (0.01 sec)
# 设置开放权限
mysql> grant all on *.* to 'root'@'%';
Query OK, 0 rows affected (0.00 sec)
# 刷新使权限生效
mysql> flush privileges;
Query OK, 0 rows affected (0.00 sec)
#客户端操作
#客户端命令行
#mysql 官方的客户端
yum install mariadb
apt install mycli
apt install mysql-client
#mysql :Python实现MySQL客户端,拥有关键字提示功能。
apt install mycli
登陆:mycli -uroot -proot123 -h'192.168.25.21'
#在Centso7上安装mycli
yum install python3-pip
pip3 install mycli==1.10
pip3 install pymysql==0.8
登陆:mycli -uroot -proot123 -h'192.168.25.21'
#客户端图形化软件
Navicat Premium 17
SQLyou
phpmyadmin
Workbench
MySQL重新初始化
安装时初始化失败或初始密码遗失时可以重新初始化 实际中不要使用
# 删除 /usr/local/mysql/data目录中数据
rm -rf /usr/local/mysql/data/
mkdir /usr/local/mysql/data
./bin/mysqld --initialize --user=mysql --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data
cd /usr/local/mysql
cat data/error.log
# 方法一:
mysqladmin -uroot -p password "root123"
初始密码
# 方法二:
mysql -uroot -p
初始密码
mysql> alter user 'root'@'localhost' identified by 'root123';
Query OK, 0 rows affected (0.05 sec)
跳过MySQL的root密码直接登录
忘记root密码时,可以使用该方法
vim /etc/my.cnf
[mysqld]
# 配置的最后添加,跳过密码登录的功能
skip-grant-tables
# 重启服务
systemctl restart mysqld
mysql -uroot
mysql>flush privileges;
Query OK, 0 rows affected (0.05 sec)
mysql>alter user 'root'@'localhost' identified by 'root123';
Query OK, 0 rows affected (0.05 sec)
mysql>\q
# 密码修改成功后,必须在配置文件中删除或注释掉skip-grant-tables
# 然后重启服务
systemctl restart mysqld
浙公网安备 33010602011771号