最近开发SAAS系统,遇到公司的云数据库到期,需要搭建自用开发数据库;参考官方的源安装模式,但是卓所周知,网速极慢,手动下载官方rpm包,又出现各种依赖缺失;醉了,装个数据各种坑,最后还是决定直接使用离线全包的方式直接解压缩安装配置。
下载MySQL8.0最新的程序
oracle官网提供mysql相关下载地址,网速快可以直接使用;
MySQL :: Download MySQL Community Server
阿里云镜像站MySQL,直接下载最新的安装包
mysql-MySQL-8.0安装包下载_开源镜像站-阿里云 (aliyun.com)
- 注意下载完整的tar文件,不要下载 minimal压缩包,minimal压缩包中不包含innodb引擎
推荐使用 阿里云镜像站下载
解压到自己的安装目录
本文将以 /opt/mysql作为mysql安装包的根目录
配置MySQL
MySQL数据库不建议采用root账号直接启动安装
1
| useradd mysql # ubuntu 使用 adduser mysql
|
1 2 3 4 5
| # 找出mysql相关软件,包括mariadb rpm -qa | grep mysql
# 删除软件 rpm -e xxx
|
1 2 3 4 5 6 7 8 9 10
| # 先下载对应的 软件 wget https://mirrors.aliyun.com/mysql/MySQL-8.0/mysql-8.0.27-linux-glibc2.12-x86_64.tar.xz tar -xf mysql-8.0.27-linux-glibc2.12-x86_64.tar.xz -C /opt/mysql
mv /opt/mysql/mysql-8.0.27-linux-glibc2.12-x86_64/* /opt/mysql/ rm -rf /opt/mysql/mysql-8.0.27-linux-glibc2.12-x86_64
# 创建必要目录 mkdir -p /opt/mysql/data mkdir -p /opt/mysql/tmp mkdir -p /opt/mysql/log
|
1
| chown -hR mysql:mysql /opt/mysql
|
注意在配置MySQL8.0时需要查看MySQL8.0支持的参数,部分参数已经移除,不能直接使用MySQL5.7中的部分参数,不向下兼容
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26
| [client] port=3306 socket=/opt/mysql/tmp/mysql.lock
[mysqld]
server-id=1 port=3306 basedir=/opt/mysql datadir=/opt/mysql/data tmpdir=/opt/mysql/tmp socket=/opt/mysql/tmp/mysql.lock pid-file=/opt/mysql/log/mysql.pid skip_name_resolve=1 character-set-server=utf8mb4 transaction_isolation=READ-COMMITTED collation-server=utf8mb4_general_ci init_connect='SET NAMES utf8mb4' lower_case_table_names=1 max_connections=40000 max_connect_errors=1000 log_error=/opt/mysql/log/error.log slow_query_log=1 long_query_time=1
|
1 2 3 4 5 6 7 8 9
| # 先配置 MySQL的命令行到 环境变量 vim /etc/profile
# 添加如下信息 export MYSQL_HOME=/opt/mysql export PATH=$PATH:$MYSQL_HOME/bin
source /etc/profile
|
先初始化数据
1
| mysqld --initialize --user=mysql
|
使用命令启动数据库
1
| /opt/mysql/bin/mysqld_safe --basedir=/opt/mysql
|
如果正常启动则退出,之后配置systemd
配置Systemd
systemd相关的内容请参考Redhat官方关于systemd介绍
Overview of systemd for RHEL 7 - Red Hat Customer Portal
1
| vi /usr/lib/systemd/system/mysql8.service
|
添加配置
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19
| [Unit] Description=MySQL database server After=syslog.target After=network.target
[Service] Type=simple
User=mysql Group=mysql
ExecStart=/opt/mysql/bin/mysqld_safe --basedir=/opt/mysql
TimeoutSec=300
PrivateTmp=true
[Install] WantedBy=multi-user.target
|
使用加载最新的systemd文件
启动mysql
1 2 3
| systemctl start mysql8
systemctl status mysql8
|
初始化数据库并配置账号密码
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
| # 初始化数据库 # 首先找到临时密码 cat /opt/mysql/log/error.log
# 初始化安装mysql数据库 mysql_secure_installation
# 按照提示配置权限账号密码
mysql -uroot -p
CREATE USER 'admin'@'%' IDENTIFIED BY 'Changeme_123'; GRANT ALL PRIVILEGES ON *.* TO 'admin'@'%'; FLUSH PRIVILEGES;
|