安装前卸载 mariadb
rpm -qa|grep mariadb # 查看版本
rpm -e --nodeps 文件名 #卸载
rpm -qa|grep mariadb # 确认是否卸载
- 下载 MYSQL
下载地址
- 下载成功后,上传到服务器,进行解压
# .tar.gz 后缀
tar -zxvf 文件名
# .tar.xz 后缀
tar -Jxvf 文件名
# 重命名(也可通过Xftp修改)
mv 原文件夹名 mysql8.1
# 配置环境变量
vim /etc/profile
export MYSQL_HOME=/zytc/mysql8.1
export PATH=${JAVA_HOME}/bin:${MYSQL_HOME}/bin:$PATH
- 创建用户和数据目录
groupadd mysql
useradd -r -g mysql mysql
mkdir -p /zytc/data/mysqldata # 创建数据目录
# 更改属主
chown -R mysql:mysql /zytc/data/mysqldata
# 更改权限
chmod -R 750 /zytc/data/mysqldata
- 准备配置文件
在 /usr/local/etc 目录下面创建 my.cnf
[mysql]
# 默认字符集
default-character-set=utf8mb4 # 默认字符集
[client]
port = 3306 # 客户端端口
socket = /tmp/mysql.sock # 客户端套接字
[mysqld]
port = 3306 # 服务器端口
server-id = 3306 # 服务器ID
user = mysql # 用户名
socket = /tmp/mysql.sock # 服务器套接字
# 安装目录
basedir = /zytc/mysql8.1 # 安装目录
# 数据存放目录
datadir = /zytc/data/mysqldata # 数据存放目录
log-bin = /zytc/data/log-bin # 二进制日志文件
# 日志及进程数据的存放目录
log-error =/zytc/data/mysqldata/mysql/mysql.log # 错误日志文件
pid-file =/zytc/data/mysqldata/mysql/mysql.pid # 进程ID文件
# 服务端字符集
character-set-server=utf8mb4 # 服务器字符集
lower_case_table_names=1 # 表名大小写敏感设置
autocommit =1 # 自动提交设置
##### 以上涉及文件夹明,注意修改
skip-external-locking # 跳过外部锁定
key_buffer_size = 256M # 键缓冲区大小
max_allowed_packet = 1M # 允许的最大数据包大小
table_open_cache = 1024 # 表打开缓存
sort_buffer_size = 4M # 排序缓冲区大小
net_buffer_length = 8K # 网络缓冲区长度
read_buffer_size = 128M # 读缓冲区大小
read_rnd_buffer_size = 512K # 随机读缓冲区大小
myisam_sort_buffer_size = 64M # MyISAM排序缓冲区大小
thread_cache_size = 128 # 线程缓存大小
#query_cache_size = 128M # 查询缓存大小
tmp_table_size = 1024M # 临时表大小
explicit_defaults_for_timestamp = true # 显式默认时间戳
max_connections = 500 # 最大连接数
max_connect_errors = 100 # 最大连接错误数
open_files_limit = 65535 # 打开文件限制
binlog_format=mixed # 二进制日志格式
binlog_expire_logs_seconds =864000 # 二进制日志过期秒数
# 创建表时使用的默认存储引擎
default_storage_engine = InnoDB # 默认存储引擎
innodb_data_file_path = ibdata1:10M:autoextend # InnoDB数据文件路径
innodb_buffer_pool_size = 4024M # InnoDB缓冲池大小
innodb_log_file_size = 256M # InnoDB日志文件大小
innodb_log_buffer_size = 8M # InnoDB日志缓冲区大小
innodb_flush_log_at_trx_commit = 1 # InnoDB事务提交时刷新日志
innodb_lock_wait_timeout = 50 # InnoDB锁等待超时
transaction-isolation=READ-COMMITTED # 事务隔离级别
[mysqldump]
quick # 快速导出
max_allowed_packet = 16M # 允许的最大数据包大小
[myisamchk]
key_buffer_size = 256M # 键缓冲区大小
sort_buffer_size = 128M # 排序缓冲区大小
read_buffer = 2M # 读缓冲区大小
write_buffer = 2M # 写缓冲区大小
[mysqlhotcopy]
interactive-timeout # 交互超时
- 初始化和启动 mysql
--defaults-file:指定配置文件(要放在--initialize 前面)
--user: 指定用户
--basedir:指定安装目录
--datadir:指定初始化数据目录
--intialize-insecure:初始化无密码(否则生成随机密码)
#初始化 mysql
mysqld --defaults-file=/usr/local/etc/my.cnf --basedir=/zytc/mysql8.1 --datadir=/zytc/data/mysqldata --user=mysql --initialize-insecure
启动 mysql
mysqld_safe --defaults-file=/usr/local/etc/my.cnf
ps -ef|grep mysql # 验证 mysql 是否启动成功
登录初始化密码
# 登录
mysql -u root --skip-password
# 初始化密码
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '新密码';
使用 systemd 管理 mysql 的启动和停止
在 /etc/systemd/system/ 目录下 创建 mysql.service
[Unit]
Description=MySQL Community Server
After=network.target
[Service]
User=mysql
Group=mysql
ExecStart=/zytc/mysql8.1/bin/mysqld --defaults-file=/path/to/your/my.cnf
ExecStop=/zytc/mysql8.1/bin/mysqladmin shutdown
Restart=on-failure
LimitNOFILE=4096
[Install]
WantedBy=multi-user.target
# 开机自启动
systemctl enable mysql.service
# 启动 mysql
systemctl start mysql
# 关闭 mysql
systemctl stop mysql