CentOS7.5中編譯安裝mysql 5.7.22

1 mysql安裝配置

在db01上操作

1.1 卸載自帶的mariadb相關軟件包

# rpm -qa|grep mariadb

mariadb-libs-5.5.56-2.el7.x86_64

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

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

1.2 創建相關目錄

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

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

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;


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章