linux下搭建資料庫mysql
《二》安裝Mysql
建立日誌目錄
修改vi /etc/my.cnf
my.cnf檔案配置
檢視mysql服務的socket檔案位置:find / -name mysql.sock
datadir=/usr/local/mysql/data
socket=/tmp/mysql.sock
啟用慢查詢日誌
slow_query_log = 1
如果查詢時間長於“long_query_time”設定的值,那就把此查詢查詢到“slow_query_log_file”檔案中
long_query_time = 1
slow_query_log_file = /home/log/mysqllog/log.log
定義錯誤日誌檔案
log_error = /home/log/mysqllog/log.log
relay_log_recovery=0
建立新表時將使用的預設儲存引擎
default-storage-engine=INNODB
lower_case_table_names=1
max_allowed_packet=16M
定義二進位制日誌檔案
log-bin=/home/log/mysqllog/mysql-bin
每一次事件提交就使日誌同步到磁碟,預設“sync_binlog=0”,表示讓系統自己來flush使在記憶體的日誌>刷到磁碟,設定為“1”是一種安全的設定,因為當系統crash時你最多丟失一個事件,但相反會增加系統的
IO,即使這樣也建議設定成“1”
sync_binlog = 1
二進位制日誌的格式修改成“row”
binlog_format=row
設定伺服器ID號
server-id =61
slave-skip-errors=all
sql_mode config detail:http://tech.it168.com/a2012/0822/1388/000001388401.shtml
sql_mode=”STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION”
[client]
default-character-set=utf8
socket=/tmp/mysql.sock
設定伺服器ID(1到232-1),不能重複,用ip最後一段,測試機從200開始,正式機從50,100開始
重點注意,如果是新資料庫需要複製其他資料庫的資料,server-id不能再用原來的id
參考http://www.cnblogs.com/gomysql/p/5852607.html
server-id = 209
所有日誌檔案改到日誌目錄/home/log/mysqllog
mkdir /home/log/mysqllog
mkdir /home/log/mysqllog/mysql-bin
修改mysql日誌資料夾許可權
cd /home/log/mysqllog
chown -R mysql:mysql ./
建立log.log
vi /home/log/mysqllog/log.log
chown -R mysql:mysql /home/log/mysqllog/log.log
chmod 777 /home
chmod 777 /home/log
chmod 777 /home/log/mysqllog/log.log
chgrp -R mysql /home/log/mysqllog
mysql包匯入/usr/local/下
刪除/usr/local/mysql/data下的所有東西
chmod -R 777 /usr/local/mysql
會報錯確實libaio.so.1包:yum install libaio*
執行:vi /etc/ld.so.conf
新增:/usr/lib
儲存後,在命令列終端執行:/sbin/ldconfig -v
(其作用是將檔案/etc/ld.so.conf列出的路徑下的庫檔案快取到/etc/ld.so.cache以供使用,因此當安裝完一些庫檔案,或者修改/etc/ld.so.conf增加了庫的新搜尋路徑,需要執行一下ldconfig,使所有的庫檔案都被快取到檔案/etc/ld.so.cache中,如果沒做,可能會找不到剛安裝的庫。)
建立mysql服務(mysql_install_db被棄用了):/usr/local/mysql/bin/mysqld –initialize –user=mysql –basedir=/usr/local/mysql –datadir=/usr/local/mysql/data
啟動mysql服務:/usr/local/mysql/bin/mysqld_safe –user=mysql –basedir=/usr/local/mysql –datadir=/usr/local/mysql/data &
出錯
[[email protected] bin]# ./mysqladmin -uroot -p password
Enter password: //這裡輸入上面的v:gNXSw5FTkw
New password: //重新輸入新密碼
Confirm new password: //重新輸入新密碼
#############################
mysql -uroot -p
在日誌中找到初始密碼
/home/log/mysqllog/
/usr/local/mysql/data/
##########################################
(可能出現問題,可用如下設定空白密碼的方法重置密碼)
2.修改MySQL的登入設定:
vi /etc/my.cnf
在[mysqld]的段中加上一句:skip-grant-tables
停止mysqld;
/usr/local/mysql/bin/mysqld_safe stop
(可能有其它的方法,總之停止mysqld的執行就可以了)
檢視mysql服務
ps -ef|grep mysql
kill -9 程序(強制關閉)
用以下命令啟動MySQL,以不檢查許可權的方式啟動;
/usr/local/mysql/bin/mysqld_safe –skip-grant-tables
然後用空密碼方式使用root使用者登入 MySQL;
mysql -u root
修改root使用者的密碼;
5.7版本下的mysql資料庫下已經沒有password這個欄位了,password欄位改成了authentication_string
mysql> update mysql.user set authentication_string=PASSWORD(‘Atnsmi.com’) where User=’root’;
mysql> flush privileges;
mysql> quit
##########################################
SET PASSWORD FOR [email protected]= PASSWORD(‘testadmin’);
給指定ip連線資料庫許可權:
GRANT ALL PRIVILEGES ON *.* TO 'root'@'172.69.6.163' IDENTIFIED BY 'admin' WITH GRANT OPTION;
**重新設定一次密碼:SET PASSWORD = PASSWORD('testadmin');**
配置Mysql開機啟動服務star
將服務檔案拷貝到init.d下,並重命名為mysql
cp /usr/local/mysql/support-files/mysql.server /etc/init.d/mysqld
賦予可執行許可權:chmod +x /etc/init.d/mysqld
新增服務:chkconfig –add mysqld
顯示服務列表:chkconfig –list
如果看到mysql的服務,並且3,4,5都是on的話則成功,如果是off,則鍵入
chkconfig –level 345 mysql on
重啟電腦:reboot
驗證:netstat -na | grep 3306
配置Mysql開機啟動服務end
收回許可權:revoke ALL PRIVILEGES ON . from ‘root’@’172.69.6.163’;
flush privileges;
在主伺服器上建立擁有複製許可權的帳戶:
mysql –uroot -p
mysql>
GRANT replication slave,replication client ON *.* TO 'repuser'@'172.69.1.244' IDENTIFIED BY 'repadmin';
FLUSH PRIVILEGES;
SHOW MASTER STATUS; #記錄下當前主伺服器所使用的二進位制檔案及position
防火牆埠配置:
vi /etc/sysconfig/iptables
sudo systemctl start [email protected]:1.service