mysql5.7源碼安裝

1.安裝所有包

yum -y install gcc-c++ ncurses-devel cmake make perl gcc autoconf automake zlib libxml libgcrypt libtool bison Python-devel

2.創建用戶,目錄,權限

[root@mysql1 ~]# groupadd mysql
[root@mysql1 ~]# useradd -r -g mysql -s /bin/false mysql
[root@mysql1 ~]# tar xvf mysql-5.7.17.tar.gz
[root@mysql1 ~]# cd mysql-5.7.17
mkdir /usr/local/mysql  軟件目錄
mkdir -p /usr/local/mysql/data   數據目錄
mkdir -p /var/log/mysql     日誌路徑
mkdir -p /var/run/mysql     pid路徑


-- 用戶屬主

chown -R mysql:mysql /usr/local/mysql
chown -R mysql:mysql /usr/local/mysql/data
chown -R mysql:mysql /var/log/mysql
chown -R mysql:mysql /var/run/mysql

另外如果有登陸固需求:

設置vim  /etc/security/limits.conf

MySQL   soft   nproc  2047

mysql   hard  nproc  16384


mysql   soft   nofile  1024


mysql  hard   nofile  65536

環境變量:

vim /home/mysql/.bash_profile

export  LANG=zh_CN.GB18030

export PATH=/usr/local/mysql/bin:$PATH

3.安裝一些配置,工具包

gmock ,地址http://git.typecodes.com/libs/ccpp/gmock-1.6.0.zip
安裝步驟,解壓到mysql-5.7.9的source_downloads目錄,可選步驟
安裝cmake,可以使用yum安裝或者下載安裝,下載路經http://git.typecodes.com/libs/ccpp/cmake-3.2.1.tar.gz
安裝ncurses-devel,yum安裝
GNU分析器生成器,連接http://git.typecodes.com/libs/ccpp/bison-3.0.tar.gz

4.編譯&&安裝

tar zxvf mysql-5.7.9.tar.gz
cd mysql-5.7.9
第一部:       

[root@mysql1 ~]# groupadd mysql
[root@mysql1 ~]# useradd -r -g mysql -s /bin/false mysql
[root@mysql1 ~]# tar xvf mysql-5.7.17.tar.gz
[root@mysql1 ~]# cd mysql-5.7.17
[[email protected] ~]# cmake . \
-DWITH_BOOST=boost/boost_1_59_0/ \
-DCMAKE_INSTALL_PREFIX=/usr/local/mysql \
-DSYSCONFDIR=/etc \
-DMYSQL_DATADIR=/usr/local/mysql/data \
-DINSTALL_MANDIR=/usr/share/man \
-DMYSQL_TCP_PORT=3306 \
-DMYSQL_UNIX_ADDR=/tmp/mysql.sock \
-DDEFAULT_CHARSET=utf8 \
-DEXTRA_CHARSETS=all \
-DDEFAULT_COLLATION=utf8_general_ci \
-DWITH_READLINE=1 \
-DWITH_SSL=system \
-DWITH_EMBEDDED_SERVER=1 \
-DENABLED_LOCAL_INFILE=1 \
-DWITH_INNOBASE_STORAGE_ENGINE=1
[root@mysql1 ~]# make
[root@mysql1 ~]# make install

cmake .\-DCMAKE_INSTALL_PREFIX=/usr/local/mysql  -DMYSQL_DATADIR=/usr/local/mysql/data  -DSYSCONFDIR=/etc -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=/var/run/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 -DWITH_BOOST=/usr/local/boost

第二部:make && make install
說明
-DCMAKE_INSTALL_PREFIX=/usr/local/mysql  \              [MySQL安裝的根目錄]
-DMYSQL_DATADIR=/mydata/mysql/data  \                   [MySQL數據庫文件存放目錄]
-DSYSCONFDIR=/etc \                                     [MySQL配置文件所在目錄]
-DMYSQL_USER=mysql \                                    [MySQL用戶名]      
-DWITH_MYISAM_STORAGE_ENGINE=1 \                        [MySQL的數據庫引擎]
-DWITH_INNOBASE_STORAGE_ENGINE=1 \                      [MySQL的數據庫引擎]
-DWITH_ARCHIVE_STORAGE_ENGINE=1 \                       [MySQL的數據庫引擎]
-DWITH_MEMORY_STORAGE_ENGINE=1 \                        [MySQL的數據庫引擎]
-DWITH_READLINE=1 \                                     [MySQL的readline library]
-DMYSQL_UNIX_ADDR=/var/run/mysql/mysql.sock \           [MySQL的通訊目錄]
-DMYSQL_TCP_PORT=3306 \                                 [MySQL的監聽端口]
-DENABLED_LOCAL_INFILE=1 \                              [啓用加載本地數據]
-DENABLE_DOWNLOADS=1 \                                  [編譯時允許自主下載相關文件]
-DWITH_PARTITION_STORAGE_ENGINE=1  \
-DEXTRA_CHARSETS=all \                                  [使MySQL支持所有的擴展字符]
-DDEFAULT_CHARSET=utf8 \                                [設置默認字符集爲utf8]
-DDEFAULT_COLLATION=utf8_general_ci \                   [設置默認字符校對]
-DWITH_DEBUG=0 \                                        [禁用調試模式]
-DMYSQL_MAINTAINER_MODE=0 \
-DWITH_SSL:STRING=bundled \                             [通訊時支持ssl協議]
-DWITH_ZLIB:STRING=bundled \                            [允許使用zlib library]
-DWITH_BOOST=/usr/local/boost                [boost庫地址,如果安裝了,可以不用指定]
中間遇到兩個問題,
第一,CMake Error at cmake/boost.cmake:76 (MESSAGE)
You can download it with -DDOWNLOAD_BOOST=1 -DWITH_BOOST=<directory>
解決方法:追加編譯選項-DDOWNLOAD_BOOST=1 -DWITH_BOOST=/usr/local/boost或者將 http://sourceforge.net/projects/boost/files/boost/1.59.0/boost_1_59_0.tar.gz下載到/usr/local/boost 再追加編譯選項-DWITH_BOOST=/usr/local/boost
這個一定要匹配,mysql-5.7.9可能需要安裝boost_1_59_0以上版本的
第二,Could NOT find Curses (missing:  CURSES_LIBRARY CURSES_INCLUDE_PATH)
解決:
rm CMakeCache.txt
yum install ncurses-devel

其實這個根據提示就可以看出來了

第三,安裝boost的時候,提示很多python庫沒找到

yum install python-devel

5配置文件

我們安裝時配置的路徑是etc,這裏有個默認的文件my.cnf,修改內容爲類似如下,這一步最好使用安裝文件/usr/local/mysql/support-files/my-default.cnf 放到/etc/my.cnf
# For advice on how to change settings please see
# http://dev.mysql.com/doc/refman/5.7/en/server-configuration-defaults.html
# *** DO NOT EDIT THIS FILE. It's a template which will be copied to the
# *** default location during install, and will be replaced if you
# *** upgrade to a newer version of MySQL.

[client]
port=3306
socket=/var/run/mysql/mysql.sock

[mysqld]

# Remove leading # and set to the amount of RAM for the most important data
# cache in MySQL. Start at 70% of total RAM for dedicated server, else 10%.
# innodb_buffer_pool_size = 128M

# Remove leading # to turn on a very important data integrity option: logging
# changes to the binary log between backups.
# log_bin

# These are commonly set, remove the # and set as required.
user = mysql
basedir = /usr/local/mysql
datadir = /mydata/mysql/data
port=3306
server-id = 1
socket=/var/run/mysql/mysql.sock

character-set-server = utf8
log-error = /var/log/mysql/error.log
pid-file = /var/log/mysql/mysql.pid
general_log = 1
skip-name-resolve
#skip-networking
back_log = 300

max_connections = 1000
max_connect_errors = 6000
open_files_limit = 65535
table_open_cache = 128 
max_allowed_packet = 4M
binlog_cache_size = 1M
max_heap_table_size = 8M
tmp_table_size = 16M

read_buffer_size = 2M
read_rnd_buffer_size = 8M
sort_buffer_size = 8M
join_buffer_size = 28M
key_buffer_size = 4M

thread_cache_size = 8

query_cache_type = 1
query_cache_size = 8M
query_cache_limit = 2M

ft_min_word_len = 4

log_bin = mysql-bin
binlog_format = mixed
expire_logs_days = 30


performance_schema = 0
explicit_defaults_for_timestamp

#lower_case_table_names = 1

#default-storage-engine=myism
#innodb_buffer_pool_size=2048M
#innodb_log_file_size=1024M

myisam_sort_buffer_size = 8M
myisam_repair_threads = 1

interactive_timeout = 28800
wait_timeout = 28800


# Remove leading # to set options mainly useful for reporting servers.
# The server defaults are faster for transactions and fast SELECTs.
# Adjust sizes as needed, experiment to find the optimal values.
# join_buffer_size = 128M
# sort_buffer_size = 2M
# read_rnd_buffer_size = 2M 

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

# Recommended in standard MySQL setup
sql_mode=NO_ENGINE_SUBSTITUTION,NO_AUTO_CREATE_USER,STRICT_TRANS_TABLES 

[mysqldump]
quick
max_allowed_packet = 16M

[myisamchk]
key_buffer_size = 8M
sort_buffer_size = 8M
read_buffer = 4M
write_buffer = 4M

6.初始化數據庫

[root@mysql1 local]# cd mysql
[root@mysql1 mysql]# chown -R mysql .
[root@mysql1 mysql]# chgrp -R mysql .
[root@mysql1 mysql]# bin/mysqld --initialize --user=mysql --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data
[root@mysql1 mysql]# bin/mysql_ssl_rsa_setup
[root@mysql1 mysql]# chown -R root .
[root@mysql1 mysql]# chown -R mysql data mysql-files
[root@mysql1 mysql]# \cp -rf support-files/my-default.cnf  /etc/my.cnf
[root@mysql1 mysql]# bin/mysqld_safe --user=mysql &
[root@mysql1 mysql]# echo "export PATH=$PATH:/usr/local/mysql/bin" >> /etc/profile
[root@mysql1 mysql]# source /etc/profile
[root@mysql1 mysql]# mysql -uroot -p'xxxx'
mysql> alter user root@'localhost' identified by 'tianyun';

7.設置系統服務,開機子啓動

cp /usr/local/mysql/support-files/mysql.server  /etc/init.d/mysqld
chmod +x /etc/init.d/mysqld  
chkconfig --add mysql

chkconfig mysqld on

可以參考:http://blog.csdn.NET/jc_benben/article/details/52767649

8.啓動服務

mysqld_safe --user=mysql --datadir=/mydata/mysql/data --log-error=/var/log/mysql/error.log &
service mysqld start
不懂兩者關係擺渡
查看啓動情況:ps -ef | grep mysql,netstat -tunpl | grep 3306

9.初始化配置

mysql_secure_installation
根據需要配置一些root密碼,是否匿名訪問,是否遠程訪問,刪除test庫等操作

10.創建用戶等

mysql -uroot -p
create database `mysqldb` default character set utf8 collate utf8_general_ci;
grant all privileges on mysqldb.* to loge0001@localhost identified by 'china123';
flush privileges;

說明:mysql比較特殊,不像Oracle,授權即可創建新用戶


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