centos7編譯安裝mysql5.7.20版本

centos7編譯安裝mysql5.7.20版本

遇到問題:
mysql

    以前想在線上搭建mysql5.7.20版本找了不少文檔都以爲寫得不怎麼完善,不少須要注意的錯誤點都說起,因此只好本身寫一篇了!我的以爲最主要注意的是mysql的data目錄必定不能漏了權限問題,還有的常常遇到mysql.sock文件的錯誤就是由於編譯的時候指定的目錄要當心,而後啓動前在my.cnf文件裏面定義一下問題就解決了。這是我寫的時候遇到最多的問題。
c++


1、進入mysql官網下載(www.mysql.org)mysql源安裝包:sql

按照如下步驟點擊:數據庫

DOWNLOADS à Communità MySQL Community Server àSelectOperating System: Source Code àSelect OSVersion: (Red Hat Enterprise) centos

 

##最後找到mysql-boost-5.7.20.tar.gz文件下載地址:https://dev.mysql.com/get/Downloads/MySQL-5.7/mysql-boost-5.7.20.tar.gz bash

2、解壓安裝步驟:app

1、安裝編譯環境須要的依賴包:socket

yum install -y cmake gcc-c++ ncurses-devel perl-Data-Dumper boost boost-doc boost-devel

 

2、下載源代碼和解壓源代碼:ide

[root@cml5 ~]#cd /usr/local/src/
[root@cml5src]# wget https://dev.mysql.com/get/Downloads/MySQL-5.7/mysql-boost-5.7.20.tar.gz
[root@cml5src]# tar -zxvf mysql-boost-5.7.20.tar.gz


 

3、建立mysql用戶和data目錄:工具

[root@cml5src]# cd mysql-5.7.20/
[root@cml5mysql-5.7.20]# useradd -M -s /sbin/nologin mysql
[root@cml5 mysql-5.7.20]# mkdir -pv /usr/local/mysql/mydata
[root@cml5 mysql-5.7.20]# mkdir -pv /usr/local/mysql/conf
[root@cml5 mysql-5.7.20]# chown -R mysql /usr/local/mysql
[root@cml5 mysql-5.7.20]# rm -rf /etc/my.cnf


##必須刪除my.cnf配置文件,這是mariadb的配置文件與mysql文件有衝突。

 

4、編譯安裝:

##編譯的參數意思:

cmake
-DCMAKE_INSTALL_PREFIX= [MySQL安裝的根目錄]

-DMYSQL_DATADIR=         [MySQL數據庫文件存放目錄]

-DSYSCONFDIR=                               [MySQL配置文件所在目錄]

-DMYSQL_USER=     [MySQL用戶名

-DWITH_MYISAM_STORAGE_ENGINE= [MySQL的數據庫引擎]

-DWITH_INNOBASE_STORAGE_ENGINE= [MySQL的數據庫引擎]

-DWITH_ARCHIVE_STORAGE_ENGINE=  [MySQL的數據庫引擎]

-DWITH_MEMORY_STORAGE_ENGINE= [MySQL的數據庫引擎]

-DWITH_READLINE= [MySQLreadlinelibrary]

-DMYSQL_UNIX_ADDR=                                         [MySQL的通信目錄]

-DMYSQL_TCP_PORT=[MySQL的監聽端口]

-DENABLED_LOCAL_INFILE=  [啓用加載本地數據]

-DENABLE_DOWNLOADS=[編譯時容許自主下載相關文件]

-DWITH_PARTITION_STORAGE_ENGINE=
-DEXTRA_CHARSETS= [使MySQL支持全部的擴展字符]

-DDEFAULT_CHARSET=[設置默認字符集爲utf8]
-DDEFAULT_COLLATION=  [設置默認字符校對]
-DWITH_DEBUG= [禁用調試模式]
-DMYSQL_MAINTAINER_MODE=
-DWITH_SSL:STRING=  [通信時支持ssl協議]

-DWITH_ZLIB:STRING= [容許使用zlib library]
-DDOWNLOAD_BOOST=  [容許在線更新boost]
-DWITH_BOOST=[指定boost安裝路徑]

 

[root@cml5mysql-5.7.20]# cmake \
-DCMAKE_INSTALL_PREFIX=/usr/local/mysql \
-DMYSQL_DATADIR=/usr/local/mysql/mydata \
-DSYSCONFDIR=/usr/local/mysql/conf \
-DMYSQL_USER=mysql \
-DWITH_MYISAM_STORAGE_ENGINE=1 \
-DWITH_INNOBASE_STORAGE_ENGINE=1 \
-DWITH_ARCHIVE_STORAGE_ENGINE=1 \
-DWITH_MEMORY_STORAGE_ENGINE=1 \
-DWITH_READLINE=1 \
-DMYSQL_UNIX_ADDR=/usr/local/mysql/mysql.sock \
-DMYSQL_TCP_PORT=3306 \
-DENABLED_LOCAL_INFILE=1 \
-DENABLE_DOWNLOADS=1 \
-DWITH_PARTITION_STORAGE_ENGINE=1 \
-DEXTRA_CHARSETS=all \
-DDEFAULT_CHARSET=utf8 \
-DDEFAULT_COLLATION=utf8_general_ci \
-DWITH_DEBUG=0 \
-DMYSQL_MAINTAINER_MODE=0 \
-DWITH_SSL:STRING=bundled \
-DWITH_ZLIB:STRING=bundled \
-DDOWNLOAD_BOOST=1 \
-DWITH_BOOST=./boost


 

[root@cml5mysql-5.7.20]# make && make install

##這步驟比較久!

 

5、設置權限和設置添加到系統服務(systemctl管理)

[root@cml5mysql-5.7.20]# cd /usr/local/mysql/
[root@cml5mysql]# ll
total 80
drwxr-xr-x  2 mysql root  4096 Nov  7 00:10 bin
drwxr-xr-x  2 mysql mysql     6 Nov 6 22:44 conf
-rw-r--r--  1 mysql root 17987 Sep 13 23:48 COPYING
-rw-r--r--  1 mysql root 17987 Sep 13 23:48 COPYING-test
drwxr-xr-x  2 mysql root     52 Nov 7 00:00 docs
drwxr-xr-x  3 mysql root  4096 Nov  7 00:00 include
drwxr-xr-x  4 mysql root  4096 Nov  7 00:00 lib
drwxr-xr-x  4 mysql root     28 Nov 7 00:00 man
-rw-r--r--  1 root root     42 Nov  7 08:52 my.cnf
drwxr-xr-x  8 mysql mysql 4096 Nov  7 16:38 mydata
srwxrwxrwx  1 mysql mysql     0 Nov 7 16:21 mysql.sock
-rw-------  1 mysql mysql     6 Nov 7 16:21 mysql.sock.lock
drwxr-xr-x 10mysql root   4096 Nov  7 00:00 mysql-test
-rw-r--r--  1 mysql root  2478 Sep 13 23:48 README
-rw-r--r--  1 mysql root  2478 Sep 13 23:48 README-test
drwxr-xr-x 28mysql root   4096 Nov  7 00:00 share
drwxr-xr-x  2 mysql root     86 Nov 7 00:00 support-files


 

[root@cml5 mysql]#cp/usr/local/mysql/support-files/mysql.server /etc/init.d/mysqld
[root@cml5 mysql]#chmod +x /etc/init.d/mysqld


 

##設置開機啓動:

[root@cml5 mysql]# chkconfig--add mysqld
[root@cml5 mysql]# chkconfig mysqld on


 

6、添加bin目錄下的mysql工具到/usr/bin

[root@cml5 mysql]# cp /usr/local/mysql/bin/* /usr/bin/mysql


7.初始化mysql

[root@cml5 mysql]# /usr/local/mysql/bin/mysqld --initialize --user=mysql--basedir=/usr/local/mysql --datadir=/usr/local/mysql/mydata


 

8、建立一個my.cnf文件:

[root@cml5mysql]# cat /etc/my.cnf 
[mysqld]
datadir=/usr/local/mysql/mydata
socket=/usr/local/mysql/mysql.sock
log_bin=/usr/local/mysql/mydata/mysql-bin
server-id=1

            

 

My.cnf啓動順序:

 

      ?    /etc/my.cnf

      ?    /etc/mysql/my.cnf

      ?    /usr/local/mysql/etc/my.cnf

      ?    ~/.my.cnf

      ?    其餘自定義路徑下的my.cnf,例如:/data/mysql/yejr_3306/my.cnf



 

##重設密碼:

(以前的博客裏面寫了,這裏就不寫了,訪問如下地址就ok啦)

http://legehappy.blog.51cto.com/13251607/1979492

 

9、訪問mysql

[root@cml5mysql]# mysql -uroot -p
Enterpassword: 
Welcome to theMySQL monitor.  Commands end with ; or\g.
Your MySQLconnection id is 11
Serverversion: 5.7.20-log Source distribution
 
Copyright (c)2000, 2017, Oracle and/or its affiliates. All rights reserved.
 
Oracle is aregistered trademark of Oracle Corporation and/or its
affiliates.Other names may be trademarks of their respective
owners.
 
Type 'help;'or '\h' for help. Type '\c' to clear the current input statement.
 
mysql>
相關文章
相關標籤/搜索