linux mysql 5.7.17 編譯安裝小記

官方網站中下載源碼包;mysql

https://dev.mysql.com/downloads/mysql/sql

選擇下載源碼包:bootstrap

因爲官網下載較慢,我選擇使用搜狐鏡像站進項下載..速度真的快的不是一星半點:socket

電梯: ide

http://mirrors.sohu.com/mysql/MySQL-5.7/mysql-5.7.17.tar.gz網站

下載下來後計算一下md5和上圖比對一下.不對就從新下載一次.不過通常都沒有什麼問題.ui

建立用戶:

1 # useradd  -s /sbin/nologin mysql

安裝cmake

1 # tar zxf cmake-2.8.12.2.tar.gz
2 # cd cmake-2.8.12.2
3 # ./bootstrap --prefix=/usr/local/cmake
4 # make && make install
5 
6 # echo 'export PATH=$PATH:/usr/local/cmake/bin' >> /etc/profile
7 # source /etc/profile

下載Boost源碼

根據官方文檔提示,此過程比較消耗內存,同時也必定注意,從MySQL5.7版本開始,安裝MySQL須要依賴 Boost  的C++擴展,並且只能是 1.59.0 版本;spa

Boost 下載地址: http://www.boost.org/users/history  ;選擇1.59.0版本下載,在編譯是填寫相應參數,指定Boost源碼位置便可;.net

# wget https://nchc.dl.sourceforge.net/project/boost/boost/1.59.0/boost_1_59_0.tar.gz
# tar zxf boost_1_59_0.tar.gz
# mv boost_1_59_0 /usr/local/boots

 

編譯安裝mysql

# cd mysql-5.7.17
# bpath='/opt/mysql/mysql_5717'
# cmake . \
-DCMAKE_INSTALL_PREFIX=${bpath} \
-DINSTALL_MYSQLDATADIR="${bpath}/var" \
-DMYSQL_DATADIR=${bpath}/var \
-DSYSCONFDIR=${bpath}/etc \
-DWITH_INNOBASE_STORAGE_ENGINE=1  \
-DDEFAULT_CHARSET=utf8  \
-DDEFAULT_COLLATION=utf8_general_ci \
-DMYSQL_TCP_PORT=$bport \
-DMYSQL_UNIX_ADDR=${bpath}/tmp/mysql.sock  \
-DWITH_EXTRA_CHARSETS=all \
-DWITH_BOOST=/usr/local/boots \
-DDOWNLOAD_BOOST=1

# make && make install
# cd /opt/mysql/mysql_5717/
# mkdir {etc,log,tmp,var}
# chown mysql.mysql -R *

配置文件

  1 [mysql]
  2 port=3306
  3 default_character_set=utf8
  4 no_auto_rehash
  5 
  6 [client]
  7 port            = 3306
  8 socket          = /opt/mysql/mysql_5717/tmp/mysql.sock
  9 loose_default_character_set = utf8
 10 
 11 [mysqld]
 12 ####dir
 13 pid-file = /opt/mysql/mysql_5717/tmp/mysql.pid
 14 socket = /opt/mysql/mysql_5717/tmp/mysql.sock
 15 datadir = /opt/mysql/mysql_5717/data
 16 tmpdir = /tmp
 17 
 18 ####server
 19 server_id = 503306
 20 port=3306
 21 max_connections=3000
 22 max_user_connections=1000
 23 character_set_server=utf8
 24 default_time_zone = '+08:00'
 25 secure_file_priv = NULL
 26 sql_mode = "STRICT_TRANS_TABLES,NO_ENGINE_SUBSTITUTION,NO_ZERO_DATE,NO_ZERO_IN_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER"
 27 log_timestamps=system
 28 transaction_write_set_extraction=MURMUR32
 29 show_compatibility_56=on
 30 
 31 default_storage_engine=INNODB
 32 lower_case_table_names=1
 33 auto_increment_increment = 1
 34 auto_increment_offset = 1
 35 log_bin_trust_function_creators=1
 36 explicit_defaults_for_timestamp=1
 37 
 38 skip_external_locking
 39 skip_name_resolve
 40 wait_timeout=180
 41 interactive_timeout=180
 42 max_connect_errors=1000
 43 open_files_limit=65535
 44 connect_timeout=8
 45 net_read_timeout=30
 46 net_write_timeout=60
 47 back_log=500
 48 
 49 ####slow log
 50 long_query_time=1
 51 slow_query_log=1
 52 log_queries_not_using_indexes = 1
 53 log_throttle_queries_not_using_indexes = 10
 54 log_slow_admin_statements = 1
 55 log_slow_slave_statements = 1
 56 slow_query_log_file=/opt/mysql/mysql_5717/log/slowquery.log
 57 
 58 ####general log
 59 general_log=0
 60 general_log_file=/opt/mysql/mysql_5717/log/general.log
 61 
 62 ####error log
 63 log_error=/opt/mysql/mysql_5717/log/mysql.err
 64 
 65 ####query cache
 66 query_cache_type=0
 67 query_cache_size=0
 68 query_cache_limit=2M
 69 query_cache_min_res_unit=1K
 70 
 71 table_open_cache = 65536
 72 max_allowed_packet=32M
 73 max_heap_table_size = 100M
 74 tmp_table_size = 64M
 75 thread_stack=512K
 76 thread_cache_size=1024
 77 read_rnd_buffer_size = 32M
 78 sort_buffer_size = 32M
 79 read_buffer_size = 32M
 80 join_buffer_size = 128M
 81 
 82 ####innodb
 83 innodb_data_home_dir=/opt/mysql/mysql_5717/data
 84 innodb_log_group_home_dir=/opt/mysql/mysql_5717/data
 85 innodb_data_file_path=ibdata1:2G;ibdata2:16M:autoextend
 86 innodb_buffer_pool_size=4G
 87 innodb_buffer_pool_instances=4
 88 innodb_log_files_in_group=2
 89 innodb_log_file_size=1024M
 90 innodb_log_buffer_size=10M
 91 innodb_flush_log_at_trx_commit=2
 92 innodb_max_dirty_pages_pct=60
 93 innodb_thread_concurrency=32
 94 innodb_read_io_threads=8
 95 innodb_write_io_threads=8
 96 innodb_open_files=60000
 97 innodb_file_per_table=1
 98 innodb_flush_method=O_DIRECT
 99 innodb_support_xa = 1
100 innodb_lock_wait_timeout=10
101 innodb_page_size = 8192
102 innodb_buffer_pool_load_at_startup = 1
103 innodb_buffer_pool_dump_at_shutdown = 1
104 innodb_buffer_pool_dump_pct = 40
105 innodb_page_cleaners = 4
106 innodb_lock_wait_timeout = 5
107 innodb_undo_directory = /opt/mysql/mysql_5717/data/
108 innodb_undo_logs = 128
109 innodb_undo_tablespaces = 3
110 innodb_undo_log_truncate = 1
111 innodb_max_undo_log_size = 2G
112 innodb_purge_rseg_truncate_frequency = 128
113 innodb_flush_neighbors = 1
114 
115 ####myisam
116 key_buffer_size = 64M
117 myisam_sort_buffer_size=64M
118 
119 ####gtid
120 gtid_mode=off
121 enforce_gtid_consistency=1
122 
123 ####binlog
124 log_bin    = mysql-bin
125 binlog_cache_size=4M
126 max_binlog_cache_size=2G
127 max_binlog_size=500M
128 binlog_format=ROW
129 #binlog_row_image=full
130 sync_binlog=1
131 log_slave_updates=1
132 expire_logs_days=60
133 
134 ####replication
135 relay_log_recovery=1
136 relay_log_purge = 1
137 relay_log= relaylog
138 read_only = 1
139 skip_slave_start
140 slave_net_timeout=30
141 #slave_parallel_workers = 4
142 #master_info_repository = TABLE
143 #relay_log_info_repository = TABLE
144 #binlog_gtid_simple_recovery = 1
145 #slave_skip_errors = ddl_exist_errors
146 
147 [mysqldump]
148 quick
149 max_allowed_packet = 32M
150 
151 [myisamchk]
152 key_buffer_size = 256M
153 sort_buffer_size = 256M
154 read_buffer = 2M
155 write_buffer = 2M
156 
157 [mysqlhotcopy]
158 interactive_timeout
my.cnf

附上my.cnf,此文件存在$bpath/etc/下.rest

所以要把/etc/my.cnf刪除.不然默認讀/etc/my.cnf

配置文件中的參數不是通用.須要配合環境調整.

 

初始化mysql,mysql的初始密碼存在mysql.err裏

1 建立安裝目錄和數據存放目錄,並修改權限
2 # bin/mysqld --defaults-file=etc/my.cnf --initialize --user=mysql
3 # cat /opt/mysql/mysql_5717/log/mysql.err |grep 'A temporary password '
4 2017-03-28T15:38:58.385432+08:00 1 [Note] A temporary password is generated for root@localhost: /0sgQgr3ADg*
5 
6 這個是臨時密碼..必定要記住.

啓動mysql

1 cd $bpath
2 cp support-files/mysql.server /etc/init.d/mysqld
3 ./bin/mysql.server restart
4 
5 也能夠把mysql.server拷貝到/etc/init.d下 使用service來啓動
6 cp support-files/mysql.server /etc/init.d/mysqld
7  /etc/init.d/mysqld start

 

登陸並修改密碼:

1 # ./bin/mysql  -u root -p 
2 
3 修改root密碼,不然沒法操做
4 mysql> ALTER USER root@localhost IDENTIFIED BY ''123456";
相關文章
相關標籤/搜索