MySQL-5.6.29原始碼編譯安裝記錄

ghost丶桃子發表於2016-05-24
原創作品,允許轉載,轉載時請務必以超連結形式標明文章 原始出處 、作者資訊和本宣告。否則將追究法律責任。http://koumm.blog.51cto.com/703525/1762443

一、安裝環境

1. 作業系統:CentOS 6.7 x86_64

# yum install make cmake gcc gcc-c++ gcc-g77 flex bison file libtool libtool-libs autoconf kernel-devel patch wget libjpeg libjpeg-devel libpng libpng-devel libpng10 libpng10-devel gd gd-devel libxml2 libxml2-devel zlib zlib-devel glib2 glib2-devel unzip tar bzip2 bzip2-devel libevent libevent-devel ncurses ncurses-devel curl curl-devel e2fsprogs e2fsprogs-devel krb5 krb5-devel libidn libidn-devel openssl openssl-devel vim-minimal gettext gettext-devel ncurses-devel gmp-devel pspell-devel unzip libcap diffutils net-tools libc-client-devel psmisc libXpm-devel git-core c-ares-devel perl   

2. cmake採用yum方式已安裝,不需要再安裝。

3. MySQL版本:mysql-5.6.29.tar.gz

4. 同樣安裝方式也適用於mysql-5.5.x.tar.gz


二、安裝mysql-5.6.29.tar.gz

1. 下載編譯版本mysql安裝

tar zxvf mysql-5.6.29.tar.gz   

cd mysql-5.6.29    

patch -p1 < ../mysql-openssl.patch    

cmake -DCMAKE_INSTALL_PREFIX=/usr/local/mysql -DMYSQL_DATADIR=/usr/local/mysql/data -DSYSCONFDIR=/etc -DMYSQL_UNIX_ADDR=/tmp/mysql.sock -DEXTRA_CHARSETS=gbk,gb2312,utf8,ascii -DDEFAULT_CHARSET=utf8 -DDEFAULT_COLLATION=utf8_general_ci -DWITH_READLINE=1 -DWITH_SSL=system -DWITH_ZLIB=system -DWITH_EMBEDDED_SERVER=1 -DENABLED_LOCAL_INFILE=1 -DWITH_INNOBASE_STORAGE_ENGINE=1 -DWITH_FEDERATED_STORAGE_ENGINE=1 -DWITH_ARCHIVE_STORAGE_ENGINE=1 -DWITH_BLACKHOLE_STORAGE_ENGINE=1 -DWITH_PARTITION_STORAGE_ENGINE=1 -DWITH_PERFSCHEMA_STORAGE_ENGINE=1 -DWITH_FAST_MUTEXES=1 -DWITH_DEBUG=0     

make && make install

注:重新編駐譯採用如下方式,ssl方式不需要採用,可以刪除掉相關引數。

make clean    

rm -f CMakeCache.txt


2. 準備mysql使用者

groupadd mysql   

useradd -g mysql -M -s /sbin/nologin mysql


3. 初始化mysql,資料庫位置採用預設位置

chown -R mysql:mysql /usr/local/mysql   

/usr/local/mysql/scripts/mysql_install_db –user=mysql –basedir=/usr/local/mysql –datadir=/usr/local/mysql/data


4. mysql服務配置

cd /usr/local/mysql   

cp support-files/my-medium.cnf /etc/my.cnf     

cp support-files/mysql.server  /etc/rc.d/init.d/mysqld    

chkconfig –add mysqld    

chkconfig mysqld on


5. 配置Mysql命令連結

ln -sf /usr/local/mysql/bin/mysql /usr/bin/mysql   

ln -sf /usr/local/mysql/bin/mysqldump /usr/bin/mysqldump    

ln -sf /usr/local/mysql/bin/myisamchk /usr/bin/myisamchk    

ln -sf /usr/local/mysql/bin/mysqld_safe /usr/bin/mysqld_safe


或通過加入環境變數中解決。

# vi /etc/profile    

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

# source /etc/profile


6. 配置其它

ln -sv /usr/local/mysql/include  /usr/include/mysql    

echo `/usr/local/mysql/lib` > /etc/ld.so.conf.d/mysql.conf    

ldconfig


7. Mysql配置檔案

vi /etc/my.cnf

[client]   

port        = 3306    

socket      = /tmp/mysql.sock

# The MySQL server   

[mysqld]    

port        = 3306    

socket      = /tmp/mysql.sock    

datadir = /usr/local/mysql/data    

skip-external-locking    

max_connections = 1000    

key_buffer_size = 16M    

max_allowed_packet = 1M    

table_open_cache = 64    

sort_buffer_size = 512K    

net_buffer_length = 8K    

read_buffer_size = 256K    

read_rnd_buffer_size = 512K    

myisam_sort_buffer_size = 8M

#skip-networking

log-bin=mysql-bin   

binlog_format=mixed    

server-id   = 1

innodb_data_home_dir = /usr/local/mysql/data   

innodb_data_file_path = ibdata1:10M:autoextend    

innodb_log_group_home_dir = /usr/local/mysql/data    

innodb_buffer_pool_size = 16M    

innodb_additional_mem_pool_size = 2M    

innodb_log_file_size = 5M    

innodb_log_buffer_size = 8M    

innodb_flush_log_at_trx_commit = 1    

innodb_lock_wait_timeout = 50

[mysqldump]   

quick    

max_allowed_packet = 16M

[mysql]   

no-auto-rehash

[myisamchk]   

key_buffer_size = 20M    

sort_buffer_size = 20M    

read_buffer = 2M    

write_buffer = 2M

[mysqlhotcopy]   

interactive-timeout    

expire_logs_days = 10

8. 啟動mysql

service mysqld start


9. 修改管理員密碼並測試

# /usr/local/mysql/bin/mysqladmin -u root password `admin` #設定管理員密碼   

# /usr/local/mysql/bin/mysql -u root -p   #測試密碼輸入


10. 配置mysql帳號安全

[root@test ~]# /usr/local/mysql/bin/mysql_secure_installation

NOTE: RUNNING ALL PARTS OF THIS SCRIPT IS RECOMMENDED FOR ALL MySQL   

      SERVERS IN PRODUCTION USE!  PLEASE READ EACH STEP CAREFULLY!

In order to log into MySQL to secure it, we`ll need the current   

password for the root user.  If you`ve just installed MySQL, and    

you haven`t set the root password yet, the password will be blank,    

so you should just press enter here.

Enter current password for root (enter for none):    

OK, successfully used password, moving on…

Setting the root password ensures that nobody can log into the MySQL   

root user without the proper authorisation.

You already have a root password set, so you can safely answer `n`.

Change the root password? [Y/n] n   

… skipping.

By default, a MySQL installation has an anonymous user, allowing anyone   

to log into MySQL without having to have a user account created for    

them.  This is intended only for testing, and to make the installation    

go a bit smoother.  You should remove them before moving into a    

production environment.

Remove anonymous users? [Y/n] y   

… Success!

Normally, root should only be allowed to connect from `localhost`.  This   

ensures that someone cannot guess at the root password from the network.

Disallow root login remotely? [Y/n] n   

… skipping.

By default, MySQL comes with a database named `test` that anyone can   

access.  This is also intended only for testing, and should be removed    

before moving into a production environment.

Remove test database and access to it? [Y/n] y   

– Dropping test database…    

… Success!    

– Removing privileges on test database…    

… Success!

Reloading the privilege tables will ensure that all changes made so far   

will take effect immediately.

Reload privilege tables now? [Y/n] y   

… Success!

All done!  If you`ve completed all of the above steps, your MySQL   

installation should now be secure.

Thanks for using MySQL!

Cleaning up…

登入測試:

[root@test data]# mysql -uroot -p   

Enter password:     

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

Your MySQL connection id is 9    

Server version: 5.6.29-log Source distribution

Copyright (c) 2000, 2016, 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> s   

————–    

mysql  Ver 14.14 Distrib 5.6.29, for Linux (x86_64) using  EditLine wrapper

Connection id:          9   

Current database:    

Current user:           root@localhost    

SSL:                    Not in use    

Current pager:          stdout    

Using outfile:          “    

Using delimiter:        ;    

Server version:         5.6.29-log Source distribution    

Protocol version:       10    

Connection:             Localhost via UNIX socket    

Server characterset:    utf8    

Db     characterset:    utf8    

Client characterset:    utf8    

Conn.  characterset:    utf8    

UNIX socket:            /tmp/mysql.sock    

Uptime:                 9 min 36 sec

Threads: 1  Questions: 29  Slow queries: 0  Opens: 71  Flush tables: 1  Open tables: 64  Queries per second avg: 0.050   

————–

mysql>

安裝完畢。

本文出自 “koumm的linux技術部落格” 部落格,請務必保留此出處http://koumm.blog.51cto.com/703525/1762443


相關文章