安裝mysql5.8
安裝依賴環(huán)境:
yum -y install? gcc gcc-c++ autoconf automake zlib* fiex* libxml* ncurses-devel libmcrypt* libtool-ltdl-devel* make cmake
安裝前的準(zhǔn)備:
mkdir /opt/mysql 安裝mysql的位置
groupadd mysql 創(chuàng)建mysql用戶組
useradd mysql -g mysql -M -s /sbin/nologin 創(chuàng)建mysql用戶历涝,并加入mysql組误阻,無家目錄,無登錄權(quán)限
安裝mysql:
解壓tar包并進(jìn)入暖侨,執(zhí)行
????cmake -DCMAKE_INSTALL_PREFIX=/opt/mysql/ -DMYSQL_DATADIR=/opt/mysql/data/ -DSYSCONFDIR=/opt/mysql/etc -DWITH_MYISAM_STORAGE_ENGINE=1 -DWITH_INNOBASE_STORAGE_ENGINE=1 -DWITH_MEMORY_STORAGE_ENGINE=1 -DMYSQL_UNIX_ADDR=/opt/mysql/etc/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
# -DCMAKE_INSTALL_PREFIX=/usr/local/mysql? ? ? ? ?#安裝路徑
# -DMYSQL_DATADIR=/usr/local/mysql/data? ? ? ? ? ? ? ?#數(shù)據(jù)文件存放位置
# -DSYSCONFDIR=/etc? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? #my.cnf路徑
# -DWITH_MYISAM_STORAGE_ENGINE=1? ? ? ? ? ? ? ? ? #支持MyIASM引擎
# -DWITH_INNOBASE_STORAGE_ENGINE=1? ? ? ? ? ? ? #支持InnoDB引擎
# -DWITH_MEMORY_STORAGE_ENGINE=1? ? ? ? ? ? ? ? ?#支持Memory引擎
# -DWITH_READLINE=1? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? #快捷鍵功能(我沒用過)
# -DMYSQL_UNIX_ADDR=/tmp/mysqld.sock? ? ? ? ? #連接數(shù)據(jù)庫(kù)socket路徑
# -DMYSQL_TCP_PORT=3306? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? #端口
# -DENABLED_LOCAL_INFILE=1? ? ? ? ? ? ? ? ? ? ? ? ? ? #允許從本地導(dǎo)入數(shù)據(jù)
# -DWITH_PARTITION_STORAGE_ENGINE=1? ? ? ?#安裝支持?jǐn)?shù)據(jù)庫(kù)分區(qū)
# -DEXTRA_CHARSETS=all? ? ? ? ? ? ? ? ? ? ? ? ? ?#安裝所有的字符集
# -DDEFAULT_CHARSET=utf8? ? ? ? ? ? ? ? ? ? ? ?#默認(rèn)字符
????make &&make install
安裝后配置:
????chown -R mysql.mysql /opt/mysql
????cp /opt/mysql/support-files/mysql.server /etc/init.d/mysqld
????chmod 755 /etc/init.d/mysqld
編輯/opt/mysql/etc/my.cnf
[mysqld]
basedir = /opt/mysql
datadir = /opt/mysql/data
port = 3306
# server_id = .....
socket = /opt/mysql/etc/mysql.sock #這一行指定了mysql啟動(dòng)后sock文件的位置逼庞,登錄本機(jī)的mysql時(shí)若報(bào)錯(cuò)沒有發(fā)現(xiàn)該文件則將路徑改為報(bào)錯(cuò)時(shí)的路徑即可
sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES
初始化數(shù)據(jù)庫(kù)(用如下一種方法即可)
????/opt/mysql/scripts/mysql_install_db --user=mysql --basedir=/opt/mysql --datadir=/opt/mysql/data
????/opt/mysql/scripts/mysql_install_db --user=mysql --basedir=/opt/mysql --datadir=/opt/mysql/data --defaults-file=/opt/mysql/etc/my.cnf
啟動(dòng)數(shù)據(jù)庫(kù)及初步配置:
/etc/init.d/mysqld start 無報(bào)錯(cuò)即為啟動(dòng)成功
/opt/mysql/bin下有相應(yīng)的mysql命令腳本届吁,可直接使用登錄或備份mysql
mysql 登錄本機(jī)mysql
????set password=password('wang123'); 給數(shù)據(jù)庫(kù)root用戶設(shè)置密碼
####################################################################
mysql生產(chǎn)環(huán)境配置文件范例:
[client]
port=3306
socket=/opt/mysql/etc/mysql.sock
[mysqld]
port=3306
user=mysql
socket=/opt/mysql/etc/mysql.sock
pid-file=/opt/mysql/etc/mysql.pid
basedir=/opt/mysql
datadir=/opt/mysql/data
open_files_limit=1024 #MySQL打開的文件描述符限制李茫,默認(rèn)最小1024
explicit_defaults_for_timestamp=true
sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES #SQL模式的參數(shù)十电,通過這個(gè)參數(shù)可以設(shè)置檢驗(yàn)SQL語(yǔ)句的嚴(yán)格程度
federated
skip-name-resolve #禁止MySQL對(duì)外部連接進(jìn)行DNS解析
autocommit=1
max_connections = 1000 #最大連接數(shù)
###############################主從同步相關(guān)
server-id=1 #主從關(guān)系的mysql主機(jī)server-id不能相同
log_slave_updates=1
slave_skip_errors = 1062
log-bin=/opt/mysql/data/log-bin/mysql-bin
relay_log=/opt/mysql/data/relay-log/mysql-relay-bin
binlog_cache_size=8M
max_binlog_cache_size=32M
max_binlog_size=128M
binlog_format=mixed #binlog日志格式知押,mysql默認(rèn)采用statement,建議使用mixed
sync_binlog=1 #為了安全性建議設(shè)置此項(xiàng)為1鹃骂,表示每次提價(jià)事務(wù)都會(huì)將緩存binlog寫到日志中去
log_output=FILE
log_error=mysql-error.log
slow_query_log=1
slow_query_log_file=slow_query.log
general_log=0
general_log_file=general_query.log
expire_logs_days=30 #超過30天的binlog刪除
log-slave-updates = true #將復(fù)制事件寫入binlog,一臺(tái)服務(wù)器既做主庫(kù)又做從庫(kù)此選項(xiàng)必須要開啟
###############################buffer
max_allowed_packet=32M #接受的數(shù)據(jù)包大小
max_heap_table_size=32M #定義了用戶可以創(chuàng)建的內(nèi)存表的大小
net_buffer_length=8K
sort_buffer_size=1M #MySQL執(zhí)行排序使用的緩沖大小
join_buffer_size=1M #聯(lián)合查詢操作所能使用的緩沖區(qū)大小
read_buffer_size=1M #MySQL讀入緩沖區(qū)大小
read_rnd_buffer_size=8M #MySQL的隨機(jī)讀緩沖區(qū)大小
###############################InnoDB
innodb_data_file_path=ibdata1:2048M:autoextend
innodb_log_file_size=256M #日志文件的大小,值越大則性能相對(duì)越高,一般64-512M
innodb_log_files_in_group=3 #為提高性能台盯,MySQL可以以循環(huán)方式將日志文件寫到多個(gè)文件。推薦設(shè)置為3
innodb_buffer_pool_size=64M #緩存的大小畏线,InnoDB使用一個(gè)緩沖池保存索引和原始數(shù)據(jù)
#innodb_flush_log_at_trx_commit 1 #設(shè)置提交日志的時(shí)機(jī)静盅,若設(shè)置為1,InnoDB會(huì)在每次提交后將事務(wù)日志寫到磁盤上
#############################commit
init_connect='SET autocommit=0'
transaction_isolation = READ-COMMITTED #隔離事務(wù)類型寝殴,一般設(shè)為READ-COMMITTED
[mysql]
no-auto-rehash
default-character-set=utf8 #默認(rèn)字符集類型