Mysql数据库的二进制标准安装(简易版)
1. 官方下载mysql(版本5.7.26)
- 下载完毕之后,放到
/opt/
目录下
# 在当前目录下解压
tar -xzvf mysql-5.6.38-linux-glibc2.12-x86_64.tar.gz
# 移动目录到/opt下,并且重命名为mysql57
mv mysql-5.6.38-linux-glibc2.12-x86_64 /opt/mysql57
2. 创建目录及用户
mkdir -p /data/mysql57/data /data/mysql57/binlog /data/mysql57/logs /data/mysql57/pid /data/mysql57/socks
/opt/mysql57
## 创建用户
useradd mysql
## 给用户授权
chown -R mysql. /data /opt/mysql57
## 设置环境变量
export PATH=/opt/mysql57/bin:$PATH
⚠️ centos7机器,需要检查下是否有mariradb包
rpm -qa | grep mariadb
## 如果有的话,就用yum 或者rpm卸载掉即可
yum remove mariadb
3. 依赖安装及数据初始化
## 一般的话,会缺一个依赖
yum -y install zlib-devel
## 初始化
- 不安全的初始化(无密码校验规则)
mysqld --initialize-insecure --user=mysql --basedir=/opt/mysql57 --datadir=/data/mysql57/data
4. 简单写一个配置文件(支持启动)
- vim /etc/my.cnf
[mysqld]
user=mysql
basedir=/opt/mysql57
datadir=/data/mysql57/data/
socket=/data/mysql57/socks/mysql.sock
server_id=51 # 数据库标识,可以理解为局域网内的ip地址,在相同环境下要有唯一性
[mysql]
socket=/data/mysql57/socks/mysql.sock
5.使用systemctl管理mysqld
- vim /usr/lib/systemd/system/mysql.service
[Unit]
Description=MySQL Server
Documentation=man:mysqld
Documentation=http://dev.mysql.com/doc/refman/en/using-systemd.html
After=network.target
After=syslog.target
[Install]
WantedBy=multi-user.target
[Service]
User=mysql
Group=mysql
PIDFile=/data/mysql57/pid/mysqld.pid
# Disable service start and stop timeout logic of systemd for mysqld service.
TimeoutSec=0
# Execute pre and post scripts as root
PermissionsStartOnly=true
# Needed to create system tables
#ExecStartPre=/usr/bin/mysqld_pre_systemd
# Start main service 指定mysqld目录
ExecStart=/opt/mysql57/bin/mysqld --daemonize --pid-file=/data/mysql57/pid/mysqld.pid
#注意这里要加上 --daemonize
# Use this to switch malloc implementation
#EnvironmentFile=-/etc/sysconfig/mysql
# Sets open_files_limit
LimitNOFILE = 5000
Restart=on-failure
RestartPreventExitStatus=1
PrivateTmp=false
记得重新载入 systemctl daemon-reload #重新载入
6.尝试使用systemctl工具启动数据
# 启动数据库服务
systemctl start mysqld
# 查看服务状态
systemctl status mysqld
# 停止服务
systemctl stop mysqld
7. 进入数据库并设置密码
mysql -u root -p
# 回车即可,不需要输入密码
show databases; #查看所有数据库
# 设置root用户密码
alter user root@localhost identified by 'oracle';
# 刷新授权表
flush privileges;
- 如果需要远程访问的话,需要建立一个远程账户
# 创建root远程账户
create user 'root'@'%' identified by 'oracle';
# 授权所有权限到这个远程用户
grant all on *.* to 'root'@'%';
# 还有就是一如既往的刷新授权表
flush privileges;