使用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
posted @ 2025-08-04 19:39  落无一  阅读(54)  评论(0)    收藏  举报