CentOS7.5中编译安装mysql 5.7.22

1 mysql安装配置node

在db01上操做mysql

1.1 卸载自带的mariadb相关软件包c++

# rpm -qa|grep mariadbsql

mariadb-libs-5.5.56-2.el7.x86_64数据库

# rpm -e mariadb-libs-5.5.56-2.el7.x86_64 --nodepside

# yum install libaio-devel ncurses-devel cmake gcc gcc-c++ bison -y 日志

1.2 建立相关目录orm

mkdir -p /usr/local/mysql/tmp -p server

mkdir -p /usr/local/mysql/log -pip

mkdir /usr/local/mysql/mysql_log-bin/ -p  #指定binlog日志存放路径


useradd -s /sbin/nologin -M mysql

cd /server/tools/

解压mysql-boost-5.7.22.tar.gz包,该包里包含了boost包和mysql包,从MySQL 5.7.5开始Boost库是必需的

# tar xf mysql-boost-5.7.22.tar.gz

1.3 编译安装

# cd mysql-5.7.22/

cmake . -DCMAKE_INSTALL_PREFIX=/usr/local/mysql/ \

-DMYSQL_DATADIR=/usr/local/mysql/data \

-DDOWNLOAD_BOOST=1 \

-DWITH_BOOST=boost \

-DSYSCONFDIR=/etc \

-DWITH_INNOBASE_STORAGE_ENGINE=1 \

-DWITH_PARTITION_STORAGE_ENGINE=1 \

-DWITH_FEDERATED_STORAGE_ENGINE=1 \

-DWITH_BLACKHOLE_STORAGE_ENGINE=1 \

-DWITH_MYISAM_STORAGE_ENGINE=1 \

-DENABLED_LOCAL_INFILE=1 \

-DENABLE_DTRACE=0 \

-DDEFAULT_CHARSET=utf8 \

-DWITH_EMBEDDED_SERVER=1

# make

# make install

# echo "export PATH=$PATH:/usr/local/mysql/bin/" >>/etc/profile

# source /etc/profile

1.4 拷贝启动脚本,设为开机自启动

# cp /usr/local/mysql/support-files/mysql.server /etc/init.d/mysqld

# chmod +x /etc/init.d/mysqld 

# chkconfig --add mysqld

# chkconfig mysqld on

1.5 建立mysql配置文件

cat >/etc/my.cnf <<EOF

[mysqld]

basedir = /usr/local/mysql/

datadir = /usr/local/mysql/data/

tmpdir = /usr/local/mysql/tmp/

pid-file = /usr/local/mysql/data/my.pid

port = 3306


default_storage_engine = InnoDB

innodb_autoinc_lock_mode = 2


explicit_defaults_for_timestamp = true

character-set-client-handshake = FALSE

character_set_server = utf8

skip-name-resolve

max_connections=1000

max_connect_errors = 1000000

max_allowed_packet = 1G


connect_timeout = 3600

wait_timeout = 3600

interactive_timeout = 3600

innodb_lock_wait_timeout = 10

slave-skip-errors  = 1032,1062

log-error = /usr/local/mysql/log/error.log


slow_query_log = on

slow_query_log_file = /usr/local/mysql/log/slow-query-log.log

long_query_time = 1

log-queries-not-using-indexes

log-slow-admin-statements

log-slow-slave-statements


server-id = 100

log-bin = /usr/local/mysql/mysql_log-bin/log-bin  #指定binlog日志存放路径

binlog-format = ROW

EOF

1.6 初始化数据库

以前版本mysql_install_db是在mysql_basedir/script下,5.7放在了mysql_install_db/bin目录下,且已被废弃

"--initialize"会生成一个随机密码(~/.mysql_secret),而"--initialize-insecure"不会生成密码

--datadir目标目录下不能有数据文件

# chown -R mysql.mysql /usr/local/mysql/

# mysqld --initialize-insecure --user=mysql --basedir=/usr/local/mysql/ --datadir=/usr/local/mysql/data

# mysqld_safe --defaults-file=/etc/my.cnf &   #启动mysql服务

# /etc/init.d/mysqld start                  #启动mysql服务,同上条命令同样

# mysql   #登陆mysql,没有密码

# mysqladmin -uroot password  sjk2018zpkj  #设置root密码为sjk2018

# mysql -uroot -psjk2018zpkj -e "grant all on *.* to root@'172.17.53.%' identified by 'sjk2018zpkj';"

mysql> create user test@'172.17.53.%' identified by 'pt2017';

mysql> flush privileges;

相关文章
相关标签/搜索