mysql 原始碼安裝-5.7-17-19版本

huangdazhu發表於2018-08-29

由於專案需要,現在要使用5.7.19版本的mysql


1:首先下載mysql 二進位制安裝檔案

mysql-5.6.19.tar.gz

存放目錄/mysql/mysql-5.6.19.tar.gz

tar -xf mysql-5.6.19.tar.gz

cd mysql-5.6.19

進行cmake,但是提示Cmake版本過低,至少需要2.8的版本


2:下載cmake 

cmake-2.8.10.2.tar.gz

tar -xf cmake-2.8.10.2.tar.gz

./configure

make && make install


3:進行cmake

    先建立mysql 安裝目錄以及資料檔案存放目錄

        mkdir -p /mysql/mysql

        mkdir -p /mysql/mysql/data

    同時需要建立mysql 賬號

        useradd mysql

        passwd mysql

    再進行目錄授權:

        chown -R mysql:mysql /mysql


這個是5.7.17版本的編譯安裝

   cd mysql-5.6.17

 cmake \

        -DCMAKE_INSTALL_PREFIX=/mysql/ \               //mysql軟體安裝的根目錄

        -DMYSQL_DATADIR=/mysql/data \                   //mysql 資料檔案存放目錄

        -DSYSCONFDIR=/etc \                                    //mysql 配置檔案(my.cnf)目錄

        -DWITH_MYISAM_STORAGE_ENGINE=1 \         //儲存引擎選項

        -DWITH_INNOBASE_STORAGE_ENGINE=1 \    //以啟用InnoDB、引擎支援:

        -DWITH_MEMORY_STORAGE_ENGINE=1 \

        -DWITH_READLINE=1 \                                 

        -DMYSQL_UNIX_ADDR=/var/lib/mysql/mysql.sock \   

        -DMYSQL_TCP_PORT=3306 \

        -DENABLED_LOCAL_INFILE=1 \                          //啟用載入本地資料

        -DWITH_PARTITION_STORAGE_ENGINE=1 \        

        -DEXTRA_CHARSETS=all \

        -DDEFAULT_CHARSET=utf8 \                           //預設字符集

        -DDEFAULT_COLLATION=utf8_general_ci          //字符集校對





    進行編譯,編譯時報錯如下:

            heck size of wctype_t - done

            -- Check size of wint_t

            -- Check size of wint_t - done

            -- Could NOT find Curses (missing:  CURSES_LIBRARY CURSES_INCLUDE_PATH) 

                CMake Error at cmake/readline.cmake:85 (MESSAGE):

                  Curses library not found.  Please install appropriate package,



              remove CMakeCache.txt and rerun cmake.On Debian/Ubuntu, package name is libncurses5-dev, on Redhat and derivates it is ncurses-devel.

            Call Stack (most recent call first):

              cmake/readline.cmake:128 (FIND_CURSES)

              cmake/readline.cmake:202 (MYSQL_USE_BUNDLED_EDITLINE)

              CMakeLists.txt:411 (MYSQL_CHECK_EDITLINE)

    這個報錯是提示缺少ncurses-devel依賴包

    進行下載:ncurses-devel-5.7-3.20090208.el6.x86_64.rpm

        rpm -ivh ncurses-devel-5.7-3.20090208.el6.x86_64.rpm 

        warning: ncurses-devel-5.7-3.20090208.el6.x86_64.rpm: Header V3 RSA/SHA256 Signature, key ID fd431d51: NOKEY

        Preparing...                ########################################### [100%]

       1:ncurses-devel          ########################################### [100%]

    同時rm -rf CMakeCache.txt 然後進行重新cmake

        完成之後,進行make && make install 進行mysql 安裝

        - Installing: /mysql/man/man1/msql2mysql.1

        -- Installing: /mysql/man/man8/mysqld.8

        -- Installing: /mysql/support-files/solaris/postinstall-solaris

        算安裝完成了,接下來就需要進行配置

這是5.7.17的步驟

4: 進入到mysql的安裝目錄,/mysql下:進行mysql 資料庫初始化

        scripts/mysql_install_db --basedir=mysql --datadir=/mysql/data --user=mysql  //初始化mysql資料庫

      但是報錯

        [root@db_test scripts]# ./mysql_install_db  --basedir=mysql --datadir=/mysql/data --user=mysql

            FATAL ERROR: Could not find ./bin/my_print_defaults

               cd  /u01/soft/mysql-5.6.17/support-files

         

            cp  my-default.cnf /usr/local/mysql/my.cnf //copy配置檔案


            [root@db_test support-files]# chown -R mysql:mysql /mysql

        vi /my.cnf 新增以下內容

    [mysqld]

    basedir = /mysql          

    datadir = /mysql/data  

    log-error = /mysql/mysql_error.log          

    pid-file = /mysql/mysql.pid          

    user = mysql

    tmpdir = /tmp 


    初始化mysql資料庫

[root@db_test scripts]# ./mysql_install_db  --basedir=/mysql --datadir=/mysql/data --user=mysql

Installing MySQL system tables...2017-05-11 15:01:56 0 [Warning] TIMESTAMP with implicit DEFAULT value is deprecated. Please use --explicit_defaults_for_timestamp server option (see documentation for more details).

2017-05-11 15:01:56 8161 [Note] InnoDB: Using atomics to ref count buffer pool pages

2017-05-11 15:01:56 8161 [Note] InnoDB: The InnoDB memory heap is disabled

2017-05-11 15:01:56 8161 [Note] InnoDB: Mutexes and rw_locks use GCC atomic builtins

2017-05-11 15:01:56 8161 [Note] InnoDB: Compressed tables use zlib 1.2.3

2017-05-11 15:01:56 8161 [Note] InnoDB: Using CPU crc32 instructions

2017-05-11 15:01:56 8161 [Note] InnoDB: Initializing buffer pool, size = 128.0M

2017-05-11 15:01:56 8161 [Note] InnoDB: Completed initialization of buffer pool

2017-05-11 15:01:56 8161 [Note] InnoDB: Highest supported file format is Barracuda.

2017-05-11 15:01:56 8161 [Note] InnoDB: Log scan progressed past the checkpoint lsn 1600617

2017-05-11 15:01:56 8161 [Note] InnoDB: Database was not shutdown normally!

2017-05-11 15:01:56 8161 [Note] InnoDB: Starting crash recovery.

2017-05-11 15:01:56 8161 [Note] InnoDB: Reading tablespace information from the .ibd files...

2017-05-11 15:01:56 8161 [Note] InnoDB: Restoring possible half-written data pages 

2017-05-11 15:01:56 8161 [Note] InnoDB: from the doublewrite buffer...


    或使用下列命令把mysql新增為系統服務

    cd/mysql/support-files/   

    cp ./mysql.server /etc/init.d/mysqld  

    /etc/init.d/mysqld start


    在配置環境變數

export PATH=$PATH:/mysql/bin


    [mysql@db_test ~]$ mysql

Welcome to the MySQL monitor.  Commands end with ; or \g.

Your MySQL connection id is 1

Server version: 5.6.17 Source distribution



Copyright (c) 2000, 2014, 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> show databases;

+--------------------+

| Database           |

+--------------------+

| information_schema |

| test               |

+--------------------+

2 rows in set (0.00 sec)


5:5.7.19版本的安裝步驟

5.7.19版本安裝是時候提示


CMake Error at cmake/boost.cmake:81 (MESSAGE):


  You can download it with -DDOWNLOAD_BOOST=1 -DWITH_BOOST=<directory>


所以下載boost軟體


[root@localhost ~]# wget


tar -xf boost_1_59_0.tar.gz


cp -r boost_1_59_0 /usr/local/boost


進行安裝


cmake \

-DCMAKE_INSTALL_PREFIX=/mysql/mysql \

-DMYSQL_DATADIR=/mysql/mysql/data \

-DDEFAULT_CHARSET=utf8 \

-DDEFAULT_COLLATION=utf8_general_ci \

-DMYSQL_TCP_PORT=3306 \

-DMYSQL_USER=mysql \

-DWITH_MYISAM_STORAGE_ENGINE=1 \

-DWITH_INNOBASE_STORAGE_ENGINE=1 \

-DWITH_ARCHIVE_STORAGE_ENGINE=1 \

-DWITH_BLACKHOLE_STORAGE_ENGINE=1 \

-DWITH_MEMORY_STORAGE_ENGINE=1 \

-DENABLE_DOWNLOADS=1 \

-DDOWNLOAD_BOOST=1 \

-DWITH_BOOST=/usr/boost  


完成之後,進行make && make install 

時間很長,可以出去抽根菸。


配置環境變數

export PATH=/mysql/mysql/bin:/mysql/mysql/lib:$PATH


時間很長

cd mysql/bin

./mysqld --initialize-insecure --user=mysql --basedir=/mysql/mysql --datadir=/mysql/data


[root@localhost mysql]# cp support-files/mysql.server /etc/init.d/mysqld

[root@localhost mysql]# chmod a+x /etc/init.d/mysqld


再編輯/etc/my.cnf

[mysqld]

datadir=/mysql/data

socket=/mysql/mysql.sock

user=mysql

# Disabling symbolic-links is recommended to prevent assorted security risks

symbolic-links=0


[mysqld_safe]

log-error=/mysql/mysql/logs/mysqld.log

pid-file=/mysql/mysql/logs/mysqld.pid


[client]

default-character-set=utf8

socket=/mysql/mysql.sock


[mysql]

default-character-set=utf8

socket=/mysql/mysql.sock

啟動mysql


[root@localhost mysql]# service mysqld start

Starting MySQL.2018-08-30T01:45:21.383785Z mysqld_safe error: log-error set to '/mysql/mysql/logs/mysqld.log', however file don't exists. Create writable for user 'mysql'.

The server quit without updating PID file (/mysql/data/loca[失敗]localdomain.pid)


報錯,需要建立檔案。

[root@localhost logs]# touch mysqld.log

[root@localhost logs]# touch mysqld.pid

[root@localhost logs]# chown -R mysql:mysql /mysql

 

 [root@localhost mysql]# service mysqld start

Starting MySQL.                                            [確定]

[root@localhost mysql]# 


[mysql@localhost ~]$ mysql

Welcome to the MySQL monitor.  Commands end with ; or \g.

Your MySQL connection id is 3

Server version: 5.7.19 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> show databases;

+--------------------+

| Database           |

+--------------------+

| information_schema |

| mysql              |

| performance_schema |

| sys                |

+--------------------+

4 rows in set (0.00 sec)


mysql> 

再修改root的密碼



Database changed

mysql> select host,user,authentication_string from user;

+-----------+---------------+-------------------------------------------+

| host      | user          | authentication_string                     |

+-----------+---------------+-------------------------------------------+

| localhost | root          |                                           |

| localhost | mysql.session | *THISISNOTAVALIDPASSWORDTHATCANBEUSEDHERE |

| localhost | mysql.sys     | *THISISNOTAVALIDPASSWORDTHATCANBEUSEDHERE |

+-----------+---------------+-------------------------------------------+

3 rows in set (0.00 sec)


mysql> UPDATE user SET authentication_string=PASSWORD('shenzhen#123')WHERE user='root';

Query OK, 1 row affected, 1 warning (0.01 sec)

Rows matched: 1  Changed: 1  Warnings: 1


mysql> flush privileges;

Query OK, 0 rows affected (0.00 sec)


mysql> select host,user,authentication_string from user;

+-----------+---------------+-------------------------------------------+

| host      | user          | authentication_string                     |

+-----------+---------------+-------------------------------------------+

| localhost | root          | *4E25F9206A350692D2F5AC0512B41C69759FF312 |

| localhost | mysql.session | *THISISNOTAVALIDPASSWORDTHATCANBEUSEDHERE |

| localhost | mysql.sys     | *THISISNOTAVALIDPASSWORDTHATCANBEUSEDHERE |

+-----------+---------------+-------------------------------------------+

3 rows in set (0.00 sec)


mysql> 







mysql> 



來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/28869493/viewspace-2213116/,如需轉載,請註明出處,否則將追究法律責任。

相關文章