双mysql之编译安装mysql-5-7-18

来源:互联网 发布:java -jar 端口 编辑:程序博客网 时间:2024/06/05 23:07

1、下载带boost的mysql,不带boost需要单独安装

wget http://mirrors.sohu.com/mysql/MySQL-5.7/mysql-boost-5.7.18.tar.gz

2、安装cmake

yum install -y cmake

3、创建运行mysql的用户

useradd -s /sbin/nologin mysql1

4、编译安装mysql

tar zxvf mysql-boost-5.7.18.tar.gz

cd mysql-5.7.18/

cmake -DCMAKE_INSTALL_PREFIX=/usr/local/mysql1 -DMYSQL_UNIX_ADDR=/tmp/mysql1.sock /

-DDEFAULT_CHARSET=utf8 -DDEFAULT_COLLATION=utf8_general_ci -DWITH_EXTRA_CHARSETS:STRING=all /

-DWITH_MYISAM_STORAGE_ENGINE=1 -DWITH_INNOBASE_STORAGE_ENGINE=1 /

-DWITH_MEMORY_STORAGE_ENGINE=1 -DWITH_READLINE=1 -DENABLED_LOCAL_INFILE=1 /

-DMYSQL_DATADIR=/home/data/mysql1/data -DMYSQL_USER=mysql1 /

-DWITH_BOOST=/home/data/soft/mysql-5.7.18/boost -DMYSQL_TCP_PORT=3307



cmake \
-DCMAKE_INSTALL_PREFIX=/usr/local/mysql1 \#指定安装路径
-DMYSQL_UNIX_ADDR=/tmp/mysql1.sock \#MySQL进程间通信的套接字的位置
-DDEFAULT_CHARSET=utf8 \#默认字符集
-DDEFAULT_COLLATION=utf8_general_ci \#默认的字符集排序规则
-DWITH_EXTRA_CHARSETS:STRING=all \#安装所有字符集
-DWITH_MYISAM_STORAGE_ENGINE=1 \#支持MyIASM引擎
-DWITH_INNOBASE_STORAGE_ENGINE=1 \#支持InnoDB引擎
-DWITH_MEMORY_STORAGE_ENGINE=1 \#支持Memory引擎
-DWITH_READLINE=1 \#快捷键功能
-DENABLED_LOCAL_INFILE=1 \#允许从本地导入数据
-DMYSQL_DATADIR=/home/data/mysql1/data \#数据安装路径
-DMYSQL_USER=mysql1#指定用户
-DMYSQL_TCP_PORT=3307#指定端口
-DWITH_BOOST=/root/mysql-5.7.18/boost#指定boost

make

make install

mkdir /usr/local/mysql1/etc #创建配置文件路径

vim /usr/local/mysql1/etc/my.cnf #创建配置文件(配置不对,初始化不会成功)

rm -rf /home/data/mysql1/data/* #初始化之前要保证没有数据文件

/usr/local/mysql1/bin/mysqld --initialize --user=mysql1 --basedir=/usr/local/mysql1 --datadir=/home/data/mysql1/data#数据库初始化

/home/data/logs/mysql1/mysql1_error.log初始化临时密码会写到错误日志里

chown -R mysql1:mysql1 /home/data/mysql1#给mysql数据目录权限

mkdir -p /home/data/logs/mysql1#创建配置文件中错误日志目录

touch /home/data/logs/mysql1/mysql1_error.log#创建配置文件中错误日志文件(不创建无法启动)

chown -R /home/data/logs/mysql1#更改日志目录权限

/usr/local/mysql1/bin/mysqld_safe --defaults-file=/usr/local/mysql1/etc/my.cnf --user=mysql1 &#后台运行方式启动mysql

/usr/local/mysql1/bin/mysql -uroot -p#登录mysql

>set password = '123456';#更改mysql的root密码

>mysql>GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY '123456' WITH GRANT OPTION;

#设置root用户在任何地方以123456为密码登录,并有所有库权限(ALL PRIVILEGES为所有权限、*.*为所有库、%为所有IP

>flush privileges;

>exit