1. 文档说明
简述mysql数据库基础安装配置手册,性能调优需要结合my.cnf的参数进行调优,将在其他文档中进行介绍,安装配置需要注意mysql软件介质目录和数据目录的规划。
2. 参考文档
mysql reference手册
3. 系统准备
操作系统:centos 6.5(mini desktop安装)
mysql:mysql 5.7.{16,17,18}
Item
Item Content
IP
192.168.4.192
HOSTNAME
node2.mono
MYSQL_HOME
/opt/mysql/5.7.16
DATA DIR
/mysql/data
BINLOG DIR
/mysql/binlog
MY.CNF DIR
/etc/my.cnf
Notes:mysql数据库对目录结构并无要求,操作中使用结构清晰的目录方便理解和操作简便性;除了RPM包安装不能使用自定义MYSQL_HOME,其他安装配置方式都可以自定义MYSQL_HOME。
4. 二进制包安装
4.1 安装介质准备
image.png
4.2 系统用户创建
groupadd -g 270 mysql
useradd -u 271 -g mysql -s /bin/bash -d /home/mysql -m mysql
4.3 相关目录创建
mkdir -p /mysql/{data,binlog}
mkdir -p /opt/mysql/5.7.18
4.4 mysql安装配置
检查是否已有mysql组件
[root@node1 ~]# rpm -qa | grep mysql
mysql-libs-5.1.71-1.el6.x86_64
卸载已经存在的mysql组件
rpm -e mysql-libs-5.1.71-1.el6.x86_64 –nodeps
上传mysql介质
cd /root
sftp> put mysql-5.7.18-linux-glibc2.5-x86_64.tar.gz
解压mysql介质到指定MYSQL_HOME目录
tar -zxvf mysql-5.7.18-linux-glibc2.5-x86_64.tar.gz -C /opt/mysql/5.7.18/ --strip-component=1
--strip-component=1参数表示文件目录深度,这里=1表示过滤掉第一级目录
配置my.cnf文件,5.7.18的二进制包并没有my-default.cnf,可以自己建立。
cd /opt/mysql/5.7.18/support-files/
cp my-default.cnf /etc/my.cnf
vi /etc/my.cnf
#添加修改以下内容
[mysqld_safe]
log-error = /mysql/mysqld.log
[mysqld]
basedir = /opt/mysql/5.7.18
datadir = /mysql/data
port = 3306
server_id = 1
socket = /tmp/mysqld.sock
[client]
socket = /tmp/mysqld.sock
配置mysql服务
cd /opt/mysql/5.7.18/support-files/
cp mysql.server /etc/init.d/mysqld
vi /etc/init.d/mysqld
#修改以下内容
basedir=/opt/mysql/5.7.18
datadir=/mysql/data
lockdir='/mysql'
lock_file_path="$lockdir/mysqld.loc"
授权目录和文件
chown mysql.mysql -R /mysql
chown mysql.mysql -R /opt/mysql
chown mysql.mysql -R /etc/my.cnf
chown mysql.mysql -R /etc/init.d/mysqld
4.5 环境变量配置
su – mysql
vi ~/.bash_profile
添加和修改以下内容
# Set for mysql database
export MYSQL_HOME=/opt/mysql/5.7.18
PATH=$PATH:$HOME/bin:$MYSQL_HOME/bin
生效环境变量
source ~/.bash_profile
4.6 mysql初始化数据
mysqld --defaults-file=/etc/my.cnf --initialize --user=mysql
#不指定defauls-file也可以,/etc/my.cnf会被优先读取,如果指定了defaults-file则必须放在第一个选项;注意看最后一行信息,mysql会生成临时密码,登陆后进行修改。
2017-04-10T17:33:52.594053Z 1 [Note] A temporary password is generated for root@localhost: TIQU#*2*c#1A
4.7 mysql进程启动
[mysql@node1 ~]$ /etc/init.d/mysqld start
Starting MySQL. [ OK ]
#进程确认
ps -ef | grep mysql
root 2222 1832 0 01:24 pts/1 00:00:00 su - mysql
mysql 2223 2222 0 01:24 pts/1 00:00:00 -bash
mysql 2363 1 0 01:37 pts/1 00:00:00 /bin/sh /opt/mysql/5.7.18/bin/mysqld_safe --datadir=/mysql/data --pid-file=/mysql/data/node1.mono.pid
mysql 2558 2363 1 01:37 pts/1 00:00:00 /opt/mysql/5.7.18/bin/mysqld --basedir=/opt/mysql/5.7.18 --datadir=/mysql/data --plugin-dir=/opt/mysql/5.7.18/lib/plugin --log-error=/mysql/mysqld.log --pid-file=/mysql/data/node1.mono.pid --socket=/tmp/mysqld.sock --port=3306
mysql 2591 2223 1 01:38 pts/1 00:00:00 ps -ef
mysql 2592 2223 0 01:38 pts/1 00:00:00 grep mysql
关闭mysql进程
/etc/init.d/mysqld stop
Shutting down MySQL.. [ OK ]
4.8 root密码修改
mysql -uroot -hlocalhost -p
mysql> alter user 'root'@'localhost' identified by 'mysql*123';
mysql> flush privileges;