目錄
安裝與部署
操作系統:CentOS 6.7
數據庫:mysql-5.7.14
查看系統是否安裝了mysql
rpm -qa|grep mysql
有則卸載:
rpm -e mysql-community-server-5.7.14-1.el6.x86_64 --nodeps
rpm -e mysql-community-client-5.7.14-1.el6.x86_64 --nodeps
rpm -e mysql-community-common-5.7.14-1.el6.x86_64 --nodeps
rpm -e mysql-community-libs-5.7.14-1.el6.x86_64 --nodeps
卸載完後按順序安裝以下包:
rpm -ivh mysql-community-common-5.7.14-1.el6.x86_64.rpm
rpm -ivh mysql-community-libs-5.7.14-1.el6.x86_64.rpm
rpm -ivh mysql-community-client-5.7.14-1.el6.x86_64.rpm
rpm -ivh mysql-community-server-5.7.14-1.el6.x86_64.rpm
安裝完畢後,使用以下命令檢查mysqld文件是否存在
ls /etc/init.d | grep -i mysqld
查看該文件是否具有執行權限
如果沒有執行權限,則使用以下命令:
chmod +x /etc/init.d/mysqld
設置mysql服務開機啓動
使用以下命令查看mysqld的服務狀態:
chkconfig --list mysqld
使用以下命令設置mysqld服務隨機啓動:
chkconfig mysqld on
啓動mysql服務
service mysqld start
日誌文件:/var/log/mysqld.log
如果啓動服務報錯,則以安全模式啓動mysql服務
mysqld_safe --user=mysql &
查看root用戶的臨時密碼,使用以下命令:
grep 'temporary password' /var/log/mysqld.log
登錄mysql: mysql -uroot -p'初始密碼'
進入後修改臨時密碼,爲root用戶設置一個可靠的密碼,mysql5.7之後加了弱密碼限制:
ALTER USER 'root'@'localhost' IDENTIFIED BY 'Abc2019_root';
如果root密碼忘記可以按如下方案進行修改:
mysqld_safe --skip-grant-tables --skip-networking &
mysql -u root mysql
update mysql.user set authentication_string=password('Abc2019_root') where user='root' and Host = 'localhost';
FLUSH PRIVILEGES;
開啓遠程服務器訪問mysql,需要將mysql的端口在防火牆中開一個通行證。
編輯文件
/etc/sysconfig/iptables
在文件中添加mysql的端口
-A INPUT -p tcp -m state --state NEW -m tcp --dport 3306 -j ACCEPT
保存文件後,重啓防火牆讓新的規則生效
service iptables restart
創建數據庫和用戶
以root用戶登錄進來,創建數據mydb
create database mydb;
爲數據庫mysql添加用戶
grant all on mydb.* to username@'localhost' identified by 'Mydb_2019';
grant all on mydb.* to username@'%' identified by 'Mydb_2019';
flush privileges;
上序命令表示:創建用戶username,密碼爲Mydb_2019,訪問數據庫爲mydb,擁有所有權限,@'localhost'表示username賬號只通過localhost服務器才能訪問,@‘%’表示username賬號可以通過所有服務器訪問
Mysql配置
在Linux系統中配置文件一般在/etc/my.cnf或者/etc/mysql/my.cnf
常用配置介紹
max_connections | 最大連接數,設置這個的作用就像一個急剎車,以保證服務器不會因應用程序激增的連接不堪重負 |
thread_cache_size | 服務器線程緩存(Thread_Cache)最大連接線程數 |
table_cache_size | 表緩衝和線程緩存類似,存儲對象爲表 |
default-storage-engine | 設置MySQL的默認存儲引擎 |
query_cache_size | 主要用來緩存MySQL中的ResultSet |
sort_buffer_size | MySql執行排序使用的緩衝大小 |
innodb_buffer_pool_size | InnoDB緩衝池大小,比其他任何東西更需要內存,不僅僅是緩衝索引,還會緩衝行的數據,自適應哈希索引,插入緩衝,鎖,以及其他內部數據結構。InnoDB還使用緩衝池來幫助延遲寫入,這樣就能合併多個寫入操作然後一起順序寫回。所以必須確保緩衝池分配足夠的內存。 |
innodb_log_buffer_size | 日誌緩衝區大小 |
innodb_log_file_size | 日誌文件大小 |
innodb_file_per_table | 讓InnoDB爲每張表使用一個文件 |
innodb_flush_method | 配置InnoDB如何跟文件系統互相作用 |
參考:《高性能MySql》