安装MySQL
企业一般使用MySQL二进制包安装MySQL8.0
另外还有yum/apt、源码、Shell一键安装、容器化安装(Docker一键安装)安装方式
前期准备
关闭防火墙和沙盒
安装依赖环境
安装二进制包
安装路径与权限
修改配置与初始化
设置环境变量
修改密码
设置开机启动
设置远程登录
客户端-图形化
工具分类
Web 端(无需安装客户端)
桌面端(需安装软件)
1.安装依赖环境
1.安装依赖环境
# CentOS7
yum install -y libaio libaio-devel ncurses ncurses-devel openssl openssl-devel
# Ubuntu22.04
sudo apt update
sudo apt install -y libaio1 libaio-dev libtinfo5 libncurses-dev libncurses5 libncurses5-dev libncursesw5 libncursesw5-dev libssl-dev2.安装二进制包
2.下载二进制包
# wget https://downloads.mysql.com/archives/get/p/23/file/mysql-8.0.20-linux-glibc2.12-x86_64.tar.xz
# wget http://192.168.57.200/Software/mysql-8.0.20-linux-glibc2.12-x86_64.tar.xz
# 从真机上传安装到Linux系统中;
# FTP,SFTP,lrzsz
apt install -y lrzsz #这个是ubuntu的本地与Linux传输工具
rz 文件 # 远程上传文件到Linux系统
sz 文件 # 下载文件到真机上3.安装路径与权限
3.设置安装路径与权限
# 解压
tar -xvf 压缩包名字
# 将mysql文件夹,剪切并改名
mv 解压好的mysql文件名字 /usr/local/mysql # 指定mysql的软件路径
# 创建mysql用户
useradd mysql -M -s /sbin/nologin # 创建 mysql 的系统用户
专门用于运行 MySQL 服务,并限制其登录权限
# 创建数据库数据目录
mkdir /usr/local/mysql/data # 创建一个 data 的子目录
专门用于存储 MySQL 的数据库文件
# 更改mysql目录权限
chown mysql:mysql -R /usr/local/mysql # 确保服务能以 mysql 用户身份正常运行没有 它将无法写入数据目录和日志文件导致启动失败4.修改配置与初始化
4.修改配置与初始化
# 修改MySQL配置文件
cat << EOF > /etc/my.cnf
[mysqld]
port = 3306 # 服务监听端口,默认 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 # 进程 ID 文件路径,记录服务的进程号
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
EOF
# 执行初始化
/usr/local/mysql/bin/mysqld --initialize --user=mysql --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data
# 初始化 MySQL 数据库,创建系统数据库和系统表,并生成一个临时的 root 密码。
cat /usr/local/mysql/data/error.log
## 临时的 root 密码
A temporary password is generated for root@localhost: -fLgN:9iq)jf
# 初始化成功后,启动MySQL
/usr/local/mysql/support-files/mysql.server start
## 正在尝试启动 MySQL 服务 启动成功,没有任何错误
Starting MySQL.. SUCCESS!
# 查看端口 3306 的监听状态,确认 MySQL 服务是否正常监听。
ss -lnutp|grep 3306
## 显示信息
tcp LISTEN 0 128 [::]:3306 [::]:* users:(("mysqld",pid=2003,fd=32))
tcp LISTEN 0 70 [::]:33060 [::]:* users:(("mysqld",pid=2003,fd=30))5.设置环境变量
5.设置环境变量
# 修改系统环境变量
# 想要在任意目录执行mysql的命令需要修改/etc/profile
# PATH: 可执行命令的目录路径
vim /etc/profile
# 最后一行添加
export PATH=$PATH:/usr/local/mysql/bin # 让你可以在任何位置直接使用 MySQL 命令
source /etc/profile # 重新加载系统环境变量配置文件,立即生效6.修改密码
6.修改密码
# 使用你的初始密码登录MySQL
mysql -uroot -p'临时密码'
# 修改密码 需要进入mysql里面修改
alter user 'root'@'localhost' identified by '新的密码';7.设置开机启动
7.设置开机启动
# 将启动脚本复制到/etc/init.d/目录,这是启动脚本的默认目录。
# 让系统能够通过 systemctl 命令管理 MySQL。否则命令会失败。
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数据库里面操作
show databases;8.设置远程登录
8.设置远程登录
# 服务端本地登录MySQL
mysql -uroot -p密码 #-p后面直接输入密码,没有空格
# 创建一个允许从任何主机远程连接 MySQL 的 root 用户
## 需要登陆mysql数据库里面操作
## 'root'@'%' 用户名 root,允许从任何主机连接(% 是通配符)
create user 'root'@'%' identified with mysql_native_password by '密码';
## 提示成功
Query OK, 0 rows affected (0.01 sec)
注:'root'@'localhost' 仅本机 本地管理(已存在)
'root'@'%' 任何主机 远程管理(你创建的)
# 设置开放权限,授予 root 用户从任何主机连接的所有权限
## 需要登陆mysql数据库里面操作
grant all on *.* to 'root'@'%';
## 提示成功
Query OK, 0 rows affected (0.00 sec)
注:GRANT ALL 授予所有权限(SELECT, INSERT, UPDATE, DELETE, CREATE, DROP 等)
ON *.* 所有数据库()中的所有表()
TO 'root'@'%' 授予给 root 用户,允许从任何主机连接
# 刷新使权限生效
## 需要登陆mysql数据库里面操作
flush privileges;
## 提示成功
Query OK, 0 rows affected (0.00 sec)
忘记MySQL
# 如果忘记MySQL的root密码时,重置方法
vim /etc/my.cnf
# 在mysqld下最后一行添加跳过密码
skip-grant-tables
# 重新启动服务
systemctl restart mysqld
# 输入mysql后就可以直接登录不需要修改密码
## 修改好密码后、把skip-grant-tables注释
原创
安装MySQL
本文采用 CC BY-NC-SA 4.0 许可协议,转载请注明出处。
评论交流
欢迎留下你的想法