centos7-源碼安裝mysql5.7

                                    centos7源碼安裝5.7mysqlnode

    源碼安裝mysql在生產環境上是很經常使用的,可是源碼安裝出的問題比較多,接下來咱們來看看咱們如何安裝使用源碼mysql。mysql

   注:在安裝源碼時,爲了不沒必要要的麻煩。咱們須要關掉selinux。linux

一、mysql編譯安裝c++

[root@node1 src]#wget  https://dev.mysql.com/get/Downloads/MySQL-5.7/mysql-boost-5.7.20.tar.gz
[root@node1 src]#yum install -y cmake gcc-c++ gcc ncurses-devel perl-Data-Dumper boost boost-doc boost-devel

##安裝環境依賴包sql

[root@node1 src]# tar -xf mysql-boost-5.7.20.tar.gz
[root@node1 src]# cd mysql-5.7.20/
[root@node1 mysql-5.7.20]#useradd mysql  -s /sbin/nologin
[root@node1 mysql-5.7.20]#mkdir -pv /usr/local/mysql/mydata
[root@node1 mysql-5.7.20]#mkdir -pv /usr/local/mysql/conf
[root@node1 mysql-5.7.20]#chown -R mysql:mysql /usr/local/mysql

注意小事項:數據庫

若是之前裝過mariadbd的須要刪除my.cnf文件centos

[root@node1 mysql-5.7.20]#rm -rf /etc/my.cnf

必須刪除my.cnf,其爲mariadb配置文件,於mysql有衝突安全

[root@node1 mysql-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 \
-DMYSQL_UNIX_ADDR=/usr/local/mysql/mysql.sock \
-DMYSQL_TCP_PORT=3306 \
-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            #$由於5.7版本因此須要編譯boost
 [root@node1 mysql-5.7.20]#make && make install

 2.新建配置my.cnf配置文件,不新建會起不來bash

 接下來咱們看看mysql的啓動路徑順序:服務器

 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

   無論是mysqld服務器端程序,仍是mysql客戶端程序,均可以採用下面兩個參數來自行指定要讀取的配置文件路徑:

咱們新建咱們的配置文件

[root@node1 mysql-5.7.20]# cat /etc/my.cnf
[mysqld]
datadir=/usr/local/mysql/mydata        ##這個目錄要有mysql用戶權限
socket=/tmp/mysql.sock     ###讓它生成在tmp目錄下,其餘目錄也能夠,但要給予權限,在tmp目錄下咱們就不須要,等下建個軟鏈接就好。

3.設置添加到系統服務並設置開機啓動

[root@node1 mysql-5.7.20]#cp /usr/local/mysql/support-files/mysql.server /etc/init.d/mysqld
[root@node1 mysql-5.7.20]#chmod +x /etc/init.d/mysqld
[root@node1 mysql-5.7.20]#chkconfig --add mysqld
[root@node1 mysql-5.7.20]#chkconfig mysqld on

四、將mysql添加到bash

[root@node1 mysql-5.7.20]#cp /usr/local/mysql/bin/mysql /usr/bin/mysql

5.咱們初始化mysql

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

六、啓動咱們的mysql

[root@node1 mysql-5.7.20]# service mysqld start
Starting MySQL.Logging to '/usr/local/mysql/mydata/node2.err'.
Starting MySQL. SUCCESS!
[root@node1 mysql-5.7.20]# ln -s /tmp/mysql.sock /usr/local/mysql/mysql.sock    ###新建軟鏈接,啓動mysql以便咱們能找到mysql.sock
[root@node1 mysql-5.7.20]# service mysqld restart
Shutting down MySQL.. SUCCESS! 
Starting MySQL. SUCCESS!
[root@node1 mysql-5.7.20]# cat  /etc/my.cnf
[mysqld]
datadir=/usr/local/mysql/mydata      
socket=/usr/local/mysql/mysql.sock       ###再修改咱們的mysql.sock路徑

咱們發現能夠啓動成功

七、進入咱們的數據庫。

[root@node1 mysql-5.7.20]#mysql
Linux mysql 5.6: ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: NO)

##發現會出錯,但咱們並非咱們的mysql密碼,且咱們也進不入安全模式。怎麼辦呢?

八、解決密碼問題,進入數據庫。

咱們進入咱們的配置文件添加skip-grant-tables,

[root@node1 mysql-5.7.20]# cat /etc/my.cnf
[mysqld]
datadir=/usr/local/mysql/mydata
socket=/tmp/mysql.sock
skip-grant-tables
[root@node1 mydata]# service mysqld restart
Shutting down MySQL. SUCCESS! 
Starting MySQL. SUCCESS!

九、測試,修改密碼。

[root@node1 mysql-5.7.20]# mysql
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 4
Server version: 5.7.20 Source distribution
Copyright (c) 2000, 2017, Oracle and/or its affiliates. All rights reserved.
Oracle is a registered 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>

##能夠發現能夠進入mysql了

mysql>update mysql.user set authentication_string=password('root') where user='root' ;

修改密碼,須要把skip-grant-tables刪掉,而後重啓服務,以root密碼登錄,而後設置咱們的密碼:

mysql>set password =password('123456');

這樣之後就能夠愉快的玩耍了。

總結:咱們發現咱們在源碼安裝時遇到的問題很是多,像配置文件要咱們新建,mysql.sock 目錄也有咱們自動生成,建立的目錄要給權限,密碼修改等問題,須要咱們注意,因此咱們把以上的方面作好,咱們就能夠成功的完成源碼安裝。

相關文章
相關標籤/搜索