安装mysql所依赖的插件
yum install -y gcc gcc-c++ automake autoconf git make
yum -y install cmake bison-devel ncurses-devel libaio-devel
1.1 下载mysql-5.6.36版本的mysql
cd /opt/
yum install -y wget
wget https://downloads.mysql.com/archives/get/file/mysql-5.6.36.tar.gz
1.2 更改/tmp/目录-防止报错
chmod 1777 /tmp
1.3 冷编译写入程序中
tar -xf mysql-5.6.36.tar.gz
cd mysql-5.6.36
cmake . -DCMAKE_INSTALL_PREFIX=/opt/mysql-5.6.36
-DMYSQL_DATADIR=/opt/mysql-5.6.36/data
-DMYSQL_UNIX_ADDR=/opt/mysql-5.6.36/tmp/mysql.sock
-DDEFAULT_CHARSET=utf8
-DDEFAULT_COLLATION=utf8_general_ci
-DWITH_EXTRA_CHARSETS=all
-DWITH_INNOBASE_STORAGE_ENGINE=1
-DWITH_FEDERATED_STORAGE_ENGINE=1
-DWITH_BLACKHOLE_STORAGE_ENGINE=1
-DWITHOUT_EXAMPLE_STORAGE_ENGINE=1
-DWITH_ZLIB=bundled
-DWITH_SSL=bundled
-DENABLED_LOCAL_INFILE=1
-DWITH_EMBEDDED_SERVER=1
-DENABLE_DOWNLOADS=1
-DWITH_DEBUG=0
1.4 编译 && 安装
make && make install
1.5 进行创建用户
useradd -s /sbin/nologin mysql -M
1.6 建立软连接
ln -s /opt/mysql-5.6.36 /opt/mysql
1.7 初始化及配置数据库
cd /opt/mysql
cp support-files/my*.cnf /etc/my.cnf ----默认有了,进行覆盖。
1.8 mysql的初始化
/opt/mysql/scripts/mysql_install_db --user=mysql --basedir=/opt/mysql --datadir=/opt/mysql/data
1.9 进行授权
chown -R mysql.mysql /opt/mysql/
1.10 进行mysql的启动脚本的配置
cp support-files/mysql.server /etc/init.d/mysqld
chmod 700 /etc/init.d/mysqld
1.11 进行启动
/etc/init.d/mysql start
1.11.1 第一个错误
#####当mysql启动时会产生socket(套接字)文件,路径是/application/mysql-5.6.36/tmp/但是默认没有该目录,需创建
mkdir -p /opt/mysql-5.6.36/tmp/
1.11.2 第二个错误
####mysql普通用户行编译安装的时候指定的信息会在文件中记录下来.make---->程序没有权限写入
chown -R mysql.mysql /opt/mysql-5.6.36/
1.11.3 常见第三个错误
ERROR! The server quit without updating PID file (/application/mysql-5.6.36/data/db01.pid).
解决思路:
1.权限.chown -R mysql.mysql
2.killall mysqld
3.重新初始化数据.
4.运行1年了,出问题(非法(断电)关机或者非法关数据库,例如kill -9).
======================================
#这个错误源于这个配置
#-DMYSQL_UNIX_ADDR=/application/mysql-5.6.36/tmp/mysql.sock
#解决
mkdir /opt/mysql-5.6.36/tmp
chown -R mysql.mysql /opt/mysql-5.6.36/tmp
1.12 进行添加到开机自启
chkconfig mysqld on
chkconfig --list mysqld
1.13 进行检查
启动:netstat -lntup |grep mysql
开机:chkconfig |grep mysql
1.14 添加mysql命令的路径
vim /root/.bash_profile
添加:
Mysql命令的绝对路径
source /root/.bash_profile
1.15 设置MySQL密码
mysqladmin -uroot password123456
1.16 进行MySQL的用户规划
select user,host from mysql.user; --查询数据库中已有用户
mysql 用户: 用户名@'主机域'
drop user ''@'db02';
drop user ''@'localhost';
drop user 'root'@'db02';
drop user 'root'@'::1';
drop user 'root'@'127.0.0.1';
select user,host from mysql.user;
drop database test;
show databases;
二.MySQL多实例
1.17 搭建三个多实例
1.18 创建多实例的目录(日志、socket)
mkdir -p /data/330{7,8,9}
1.19 进行MySQL的初始化(独立的数据)
/opt/mysql/scripts/mysql_install_db --user=mysql --basedir=/opt/mysql --datadir=/huchangxi/3307
1.20 独立的端口
独立的端口(3307、3308、3309)
1.21 进行配置MySQL的安装路径,数据存放地,套接字的路径
命令:cat /huchangxi/3307/my.cnf(3307)
[mysqld]
basedir=/huchangxi/mysql
datadir=/huchangxi/3307
socket=/huchangxi/3307/mysql.sock
log-error=/huchangxi/3307/mysql.log
log_bin=/huchangxi/3307/mysql-bin
binlog_format=row
skip_name_resolve=1
server_id=3307
port=3307
命令:cat /huchangxi/3308/my.cnf(3308)
[mysqld]
basedir=/opt/mysql
datadir=/huchangxi/3308
socket=/huchangxi/3308/mysql.sock
log-error=/huchangxi/3308/mysql.log
log_bin=/huchangxi/3308/mysql-bin
binlog_format=row
skip_name_resolve=1
server_id=3308
port=3308
命令:cat /huchangxi/3309/my.cnf(3309)
[mysqld]
basedir=/opt/mysql
datadir=/huchangxi/3309
socket=/huchangxi/3309/mysql.sock
log-error=/huchangxi/3309/mysql.log
log_bin=/huchangxi/3309/mysql-bin
binlog_format=row
skip_name_resolve=1
server_id=3309
port=3309
(配置启动完成)
1.22 启动多实例
1.22.1 通过命令命令启动
mysqld_safe --defaults-file=/huchangxi/3307/my.cnf &
mysqld_safe --defaults-file=/huchangxi/3308/my.cnf &
mysqld_safe --defaults-file=/huchangxi/3309/my.cnf &
######进行检查
netstat -lnp|grep 330
1.22.2 通过脚本启动
见window的文件夹
1.23 配置文件的读取顺序
/etc/my.cnf
/etc/mysql/my.cnf
$MYSQL_HOME/my.cnf
~/.my.cnf
--defaults-extra-file
生效的是后面的
注意:
1、如果设置了 --defaults-file=/tmp/aa.txt,会忽略以上所有的配置信息
2、如果命令行中设置了和配置文件中的参数重复,最终会以命令行为准
mysqld_safe --socket=/mnt/mysql.sock &
1.24 进入MySQL
mysql -S /huchangxi/3307/mysql.sock
mysql -S /huchangxi/3308/mysql.sock
mysql -S /huchangxi/3309/mysql.sock