mysql數據庫安裝,啟動和關閉


1、環境介紹

    系統:centos6.5

    軟件:mysql6.5(從官網下載版本時選擇Linux-Generic、X86-64bit)

2、安裝前系統檢查

    2.1、SElinux和防火牆是否關閉    

           

    2.2、操作系統的限制

        修改系統的軟硬限制,防止服務器的連接過多或表過多而出現打不開表或訪問不了表的現象(“too many open files”)和服務器跑多個實例時報(“resource temporarily unavailable”)的錯誤,表示沒有足夠資源。編輯/etc/security/limits.conf,   注意:修改完成候重啟系統才能生效

           

3、mysql數據安裝過程

    3.1、創建mysql用戶,用戶組,解壓安裝包,給安裝包授權       

 1 #創建用戶及用戶組
 2 groupadd mysql
 3 useradd -g mysql mysql -s /sbin/nologin
 4 
 5 #解壓安裝包至“/usr/local”下
 6 tar -zxvf mysql-5.6.40-linux-glibc2.12-x86_64.tar.gz -C /usr/local
 7 
 8 #做軟連接,方便日后升級
 9 ln -s /usr/local/mysql-5.6.40-linux-glibc2.12-x86_64 /usr/local/mysql
10 
11 #給mysql目錄授權
12 chown mysql.mysql -R /usr/local/mysql

    3.2、創建數據庫的數據目錄並授權

1 #創建數據庫的數據目錄
2 mkdir -p /data/mysql
3 
4 #授權
5 chown -R mysql.mysql /data/mysql

    3.3、配置數據庫配置文件

vi /etc/my.cnf

[client]
port = 3306
socket = /tmp/mysql.sock
default-character-set=utf8
[mysql]
default-character-set=utf8
[mysqld]
port = 3306
socket = /tmp/mysql.sock
basedir = /usr/local/mysql
datadir = /data/mysql
open_files_limit = 65535
back_log = 103
max_connections = 512
max_connect_errors = 100000
table_open_cache = 512
external-locking = FALSE
max_allowed_packet = 128M
sort_buffer_size = 2M
join_buffer_size = 2M
thread_cache_size = 51
query_cache_size = 32M
tmp_table_size = 96M
max_heap_table_size = 96M
slow_query_log = 1
slow_query_log_file = /data/mysql/slow.log
log-error = /data/mysql/error.log
long_query_time = 0.5
server-id = 1323306
log-bin = /data/mysql/mysql-bin
sync_binlog = 1
binlog_cache_size = 4M
max_binlog_cache_size = 128M
max_binlog_size = 1024M
expire_logs_days= 7
key_buffer_size = 32M
read_buffer_size = 1M
read_rnd_buffer_size = 16M
bulk_insert_buffer_size = 64M
character-set-server=utf8
default-storage-engine=InnoDB
binlog_format=row
interactive_timeout=300
wait_timeout=300
transaction_isolation = REPEATABLE-READ
innodb_buffer_pool_size = 1434M
innodb_data_file_path = ibdata1:1024M:autoextend
innodb_flush_log_at_trx_commit = 1
innodb_log_buffer_size = 16M
innodb_log_file_size = 256M
innodb_log_files_in_group = 2
innodb_max_dirty_pages_pct = 50
innodb_file_per_table = 1
innodb_locks_unsafe_for_binlog = 0
[mysqldump]
quick
max_allowed_packet = 32M
View Code

    3.4、初始化數據庫,一般情況下初始過程中出現兩個OK,證明初始化數據庫成功。

1 cd /usr/local/mysql/scripts
2 ./mysql_install_db --basedir=/usr/local/mysql --datadir=/data/mysql --defaults-file=/etc/my.cnf --user=mysql

    3.4、初始化數據庫完成后,啟動數據庫:

1 cd /usr/local/mysql/bin
2 ./mysqld_safe --defaults-file=/etc/my.cnf &

       查看mysql進程,驗證是否啟動成功

       

    3.5、創建數據庫密碼

1 #mysql安裝完成后,進入數據庫的方式是無密碼狀態,為保證數據庫安全,需給數據庫root用戶創建密碼
2 mysql>use mysql;
3 mysql>update user set password=password('root123') where user='root';
4 mysql>flush privileges;
5 
6 #安全加固,只保留數據庫中用戶為root,host為localhost的賬號。
7 mysql>delete from user where user != 'root' or host != 'localhost';
8 mysql>flush privileges;

4、關閉mysql數據庫:

1 #正常關閉
2 shell>cd /usr/local/mysql/bin
3 shell>./mysqladmin -uroot -proot123 shutdown
4 
5 #非正常關閉
6 shell>ps -ef|grep mysql
7 #查看mysql數據庫的進程ID,直接kill

 至此,mysql數據庫安裝,啟動和關閉完成

5、額外學習

 1 #進入mysql數據庫,通過show databases來查看當前數據庫有哪些
 2 mysql> show databases;
 3 +--------------------+
 4 | Database           |
 5 +--------------------+
 6 | information_schema |
 7 | mysql              |
 8 | performance_schema |
 9 | test               |
10 +--------------------+
11 4 rows in set (0.02 sec)
12 
13 #我們主要了解一下information_schema和mysql庫
14 
15 #information_schema在安裝mysql過程中的初始化階段自動生成,它提供了訪問數據庫中元數據的所有信息,里面存放着關於mysql服務器所有其它數據庫的信    息,如:數據庫名、數據庫里面的表、表數據類型和訪問權限等,但該庫是只讀庫,只能進行select操作,我們在information_schema中使用較多的表有:
16      *   tables (記錄所有表的基本信息,訪問該表可收集表的統計信息)
17      *   PROCESSLIST  (查看當前數據庫的連接)
18      *   GLOBAL_STATUS  (查看數據庫運行的各種狀態)
19      *   GLOBAL_VARIABLES  (查看數據庫中的參數)
20      *   PARTITIONS  (數據庫中表分區的情況)
21      *   INNODB_LOCKS、INNODB_TRX、INNODB_LOCK_WAITS 這三張表用來監控數據庫中的鎖情況
22 
23 #mysql庫也是初始化過程中自動創建的,我們主要使用user表來管理數據庫中的用戶權限信息

 6、補充:mysql5.7安裝與5.6的差異

    6.1、mysql5.7安裝與之前版本唯一的差異是初始化數據庫哪一步,詳細介紹如下:

  1 #添加組
  2 groupadd mysql
  3 #添加用戶
  4 useradd -g mysql mysql -s /sbin/nologin
  5 #解壓安裝包
  6 tar -zxvf mysql-5.7.22-linux-glibc2.12-x86_64.tar.gz -C /usr/local
  7 #創建軟連接
  8 ln -s mysql-5.7.22-linux-glibc2.12-x86_64 mysql
  9 #創建數據庫目錄
 10 mkdir -p /data/mysql
 11 #創建my.cnf
 12 
 13 vi /etc/my.cnf
 14 
 15 [client]
 16 port = 3306
 17 socket = /tmp/mysql.sock
 18 [mysql]
 19 prompt="\u@db \R:\m:\s [\d]> "
 20 no-auto-rehash
 21 [mysqld]
 22 user = mysql
 23 port = 3306
 24 basedir = /usr/local/mysql
 25 datadir = /data/mysql
 26 socket = /tmp/mysql.sock
 27 character-set-server = utf8mb4
 28 skip_name_resolve = 1
 29 open_files_limit = 65535
 30 back_log = 1024
 31 max_connections = 512
 32 max_connect_errors = 1000000
 33 table_open_cache = 1024
 34 table_definition_cache = 1024
 35 table_open_cache_instances = 64
 36 thread_stack = 512k
 37 external-locking = FALSE
 38 max_allowed_packet = 32M
 39 sort_buffer_size = 4M     #用於sql語句在內存中的臨時排序
 40 join_buffer_size = 4M     #表連接使用,用於BKA。
 41 thread_cache_size = 768
 42 query_cache_size = 0      #query_cache 高速查詢緩存,在生產環境中建議關閉,‘0’為緩存數據大小為0,
 43 query_cache_type = 0      #同上,和query_cache_size都是數據緩存的兩個核心參數,都要關閉。‘0’為關閉,‘1’為開啟(5.6以前的版本默認是關閉的)
 44 interactive_timeout = 600
 45 wait_timeout = 600
 46 tmp_table_size = 32M      #sql語句在排序或分組是沒有用到索引,就會使用臨時表空間
 47 max_heap_table_size = 32M #管理heap,memory存儲引擎表 (建議將tmp_table_size和該參數設置成一樣的值,如果不一樣,按照最小的值來限制)
 48 slow_query_log = 1
 49 slow_query_log_file = /data/mysql/slow.log
 50 log-error = /data/mysql/error.log
 51 long_query_time = 0.5
 52 server-id = 3306128
 53 log-bin = /data/mysql/mysql-binlog
 54 sync_binlog = 1
 55 binlog_cache_size = 4M
 56 max_binlog_cache_size = 1G
 57 max_binlog_size = 1G
 58 expire_logs_days = 7
 59 master_info_repository = TABLE
 60 relay_log_info_repository = TABLE
 61 gtid_mode = on
 62 enforce_gtid_consistency = 1
 63 log_slave_updates
 64 binlog_format = row
 65 relay_log_recovery = 1
 66 relay_log_purge = 1
 67 key_buffer_size = 32M   #用於MyISAM存儲引擎表,緩存MyISAM存儲
 68 read_buffer_size = 8M   #表順序掃描的緩存,只能應用於MyISAM表存儲引擎
 69 read_rnd_buffer_size = 4M    #mysql隨機讀緩存區大小,用於做mrr
 70 bulk_insert_buffer_size = 64M
 71 
 72 lock_wait_timeout = 3600
 73 explicit_defaults_for_timestamp = 1
 74 innodb_thread_concurrency = 0
 75 innodb_sync_spin_loops = 100
 76 innodb_spin_wait_delay = 30
 77 transaction_isolation = REPEATABLE-READ
 78 innodb_buffer_pool_size = 1024M    #innodb_buffer_pool用來緩存Innodb表的數據、索引、插入緩存、數據字典等信息
 79 innodb_buffer_pool_instances = 8
 80 innodb_buffer_pool_load_at_startup = 1
 81 innodb_buffer_pool_dump_at_shutdown = 1
 82 innodb_data_file_path = ibdata1:1G:autoextend   #系統表空間參數
 83 innodb_flush_log_at_trx_commit = 1
 84 innodb_log_buffer_size = 32M       #innodb_log_buffer用於事務在內存中的緩存,即:redo log buffer的大小
 85 innodb_log_file_size = 2G
 86 innodb_log_files_in_group = 2
 87 innodb_io_capacity = 2000
 88 innodb_io_capacity_max = 4000
 89 innodb_flush_neighbors = 0
 90 innodb_write_io_threads = 8
 91 innodb_read_io_threads = 8
 92 innodb_purge_threads = 4
 93 innodb_page_cleaners = 4
 94 innodb_open_files = 65535
 95 innodb_max_dirty_pages_pct = 50
 96 innodb_flush_method = O_DIRECT
 97 innodb_lru_scan_depth = 4000
 98 innodb_checksum_algorithm = crc32
 99 innodb_lock_wait_timeout = 10
100 innodb_rollback_on_timeout = 1
101 innodb_print_all_deadlocks = 1
102 innodb_file_per_table = 1         #獨立表空間  該參數設置為‘1’即可
103 innodb_online_alter_log_max_size = 4G
104 internal_tmp_disk_storage_engine = InnoDB
105 innodb_stats_on_metadata = 0
106 innodb_status_file = 1
107 innodb_status_output = 0
108 innodb_status_output_locks = 0
109 #performance_schema
110 performance_schema = 1
111 performance_schema_instrument = '%=on'
112 #innodb monitor
113 innodb_monitor_enable="module_innodb"
114 innodb_monitor_enable="module_server"
115 innodb_monitor_enable="module_dml"
116 innodb_monitor_enable="module_ddl"
117 innodb_monitor_enable="module_trx"
118 innodb_monitor_enable="module_os"
119 innodb_monitor_enable="module_purge"
120 innodb_monitor_enable="module_log"
121 innodb_monitor_enable="module_lock"
122 innodb_monitor_enable="module_buffer"
123 innodb_monitor_enable="module_index"
124 innodb_monitor_enable="module_ibuf_system"
125 innodb_monitor_enable="module_buffer_page"
126 innodb_monitor_enable="module_adaptive_hash"
127 [mysqldump]
128 quick
129 max_allowed_packet = 32M
130 
131 #初始化數據庫
132 /usr/local/mysql/bin/mysqld --defaults-file=/etc/my.cnf --basedir=/usr/local/mysql --datadir=/data/mysql --user=mysql --initialize        #初始化數據庫時加上--initialize參數會生成一個臨時的數據庫初始化密碼,記錄在log-error(錯誤日志)中,如果加上--initialize-insecure參數,表示無密碼進入,建議使用生成初始密碼
133 
134 #啟動數據庫
135 /usr/local/mysql/bin/mysqld_safe --defaults-file=/etc/my.cnf &

136 #修改目錄屬主
137 chown -R mysql.mysql /usr/local/mysql
138 chown -R mysql.mysql /data/mysql

    6.2、啟動完成后,修改初始密碼,設置永不過期 

             

#使用初始密碼登錄到數據庫中
/usr/local/mysql/bin/mysql -uroot -pqpg47Wtts1#K

#設置密碼
mysql>set password = 'password';
mysql>alter user 'root'@'localhost' password expire never;
mysql>flush privileges;

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM