溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Mysql入門基礎(2)-->Mysql數(shù)據(jù)庫安裝

發(fā)布時間:2020-07-18 22:24:30 來源:網(wǎng)絡 閱讀:488 作者:zy274587466 欄目:數(shù)據(jù)庫

第二章      Mysql數(shù)據(jù)庫安裝

聲明數(shù)據(jù)庫和實例:

在數(shù)據(jù)庫領域中有兩個詞很容易混淆,它們就是“實例“和數(shù)據(jù)庫(database).

  • 數(shù)據(jù)庫:在物理操作系統(tǒng)上,以文件或者其它的形式文件類型的集合,在Mysql中,數(shù)據(jù)庫文件可以,frm,myd,myi,等文件結(jié)尾,

 

  • 數(shù)據(jù)庫實例:是由數(shù)據(jù)庫后臺的進程/線程以及一共享內(nèi)存區(qū)組成,這個區(qū)域可以被運行在后臺線程和進程所共享,需要牢記的是,數(shù)據(jù)實例才是真正用來操作數(shù)據(jù)庫文件的。

 

實例和數(shù)據(jù)庫的通常關(guān)系是---11對應的,即是一個實例對用一個數(shù)據(jù)庫,或者一個數(shù)據(jù)庫對應一個實例。在集群的情況下可能存在一個數(shù)據(jù)庫對應多個實例。

 

數(shù)據(jù)庫系統(tǒng)工作原理:

(1)用戶發(fā)起向數(shù)據(jù)庫發(fā)起連接

(2)Mysql數(shù)據(jù)庫驗證權(quán)限。如果權(quán)限不夠。直接拒絕,權(quán)限OK,進入下一步

(3)用戶開始發(fā)起SQL語句

(4)Mysql數(shù)據(jù)庫解析器開始解析SQL語句

(5) Mysql開始查詢自己的本地緩存,有的話。直接反饋用戶,沒有的話,進入下一步

(6)經(jīng)過解析器。對SQL語句進行定位,最后找到所需要的數(shù)據(jù),在本地緩存一份,然后直接反饋給用戶.

 

(7)Mysql版本最近的 5 .0à5.1à5.2à5.3à5.4à5.5à5.6à5.7

 

 

2.1、安裝依賴包

#yum install gcc gcc-c++ ncurses-devel perl camke bison

 

2.2、創(chuàng)建用戶

# groupadd mysql

# useradd mysql –g mysql –s /sbin/nologin

#mkdir -p /usr/local/mysq

#mkdir -p /data/mysqldbl

2.3、安裝Mysql

×××

http://120.52.72.19/cdn.mysql.com/c3pr90ntc0td//Downloads/MySQL-5.6/mysql-5.6.31.tar.gz

#tar -xvf mysql-5.6.31.tar.gz

#cmake -DCMAKE_INSTALL_PREFIX=/usr/local/mysql \

-DMYSQL_UNIX_ADDR=/tmp/mysql.sock \

-DSYSCONFDIR=/etc \

-DDEFAULT_CHARSET=gbk \

-DDEFAULT_COLLATION=gbk_chinese_ci \

-DWITH_INNOBASE_STORAGE_ENGINE=1 \

-DWITH_ARCHIVE_STORAGE_ENGINE=1 \

-DWITH_BLACKHOLE_STORAGE_ENGINE=1 \

-DWITH_FEDERATED_STORAGE_ENGINE=1 \

-DWITH_PARTITION_STORAGE_ENGINE=1 \

-DMYSQL_DATADIR=/data/mysqldb \

-DMYSQL_TCP_PORT=3306

注:重新運行配置,需要刪除CMakeCache.txt文件

# make && make install 編譯后安裝

解釋:

#cmake  編譯命令

-DCMAKE_INSTALL_PREFIX=/usr/local/mysql 設置mysql安裝目錄

-DMYSQL_UNIX_ADDR=/tmp/mysql.sock 設置監(jiān)聽套接字路徑,這必須是一個絕對路徑名。默認為/tmp/mysql.sock

-DSYSCONFDIR=/etc 配置文件放在/etc/下面

-DDEFAULT_CHARSET=gbk 設置服務器的字符集。

缺省情況下,MySQL使用latin1的(CP1252西歐)字符集。cmake/character_setsNaNake文件包含允許的字符集名稱列表。

-DDEFAULT_COLLATION=gbk_chinese_ci 設置服務器的排序規(guī)則。

 

-DWITH_INNOBASE_STORAGE_ENGINE=1

-DWITH_ARCHIVE_STORAGE_ENGINE=1

-DWITH_BLACKHOLE_STORAGE_ENGINE=1

存儲引擎選項:

MyISAM,MERGEMEMORY,和CSV引擎是默認編譯到服務器中,并不需要明確地安裝。

靜態(tài)編譯一個存儲引擎到服務器,使用-DWITH_engine_STORAGE_ENGINE= 1

可用的存儲引擎值有:ARCHIVE, BLACKHOLE, EXAMPLE, FEDERATED, INNOBASE (InnoDB), PARTITION (partitioning support), PERFSCHEMA (Performance Schema)

 

-DMYSQL_DATADIR=/data/mysqldb

設置mysql數(shù)據(jù)庫文件目錄

-DMYSQL_TCP_PORT=3306

設置mysql服務器監(jiān)聽端口,默認為3306

-DENABLE_DOWNLOADS=1

是否要下載可選的文件。例如,啟用此選項(設置為1),cmake將下載谷歌所使用的測試套件運行單元測試

2.4、初始化

建立Mysql的數(shù)據(jù)存儲目錄

# mkdir–p /data/mysqldb/

 

Mysql安裝目錄進行授權(quán)

# chown -R mysql:mysql /usr/local/mysql

 

 

Mysql數(shù)據(jù)存儲目錄進行授權(quán)

# chown -R mysql:mysql /data/mysqldb

 

開始初始化

/usr/local/services/mysql/bin/mysql_install_db --user=mysql --basedir=/usr/local/mysql --datadir=/data/mysqldb

 

復制Mysql服務啟動腳本

# cp /usr/local/services/mysql/share/mysql/mysql.server /etc/init.d/mysqld

# chmod 755 /etc/init.d/mysqld

 

修改mysql服務啟動腳本

# vim /etc/init.d/mysqld

basedir=/usr/local/services/mysql

datadir=/data/dbdata/

 

2.5、配置文件

#cp support-files/my-medium.cnf /etc/my.cnf

# vim /etc/my.cnf

[client]

port = 3306           //客戶端所連接的端口號

socket = /tmp/mysql.sock  //客戶端所連接的sock文件存放位置

 

[mysqld]

#base

port = 3306         //mysql的默認端口號,可以修改

user = mysql        //mysql用戶指定

socket = /tmp/mysql.sock  //連接所使用的端口號

pid-file = /tmp/mysql.pid  //進程運行的主PID文件

basedir = /usr/local/mysql  //Mysql安裝目錄

datadir = /data/mysqldb  //Mysql數(shù)據(jù)目錄

tmpdir = /opt/mysqltmp   //Mysql臨時表目錄

open_files_limit = 10240  //打開文件句柄的數(shù)量

explicit_defaults_for_timestamp

sql_mode = NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES

federated   //支持sql語法和數(shù)據(jù)校驗等.sql_mode三種模式

ANSI模式、寬松模式,對插入數(shù)據(jù)進行校驗,如果不符合定義類型或長度,對數(shù)據(jù)類型調(diào)整或者截斷保存,報“warning”警告

 

TRADITIONAL模式、嚴格模式,當向mysql數(shù)據(jù)插入數(shù)據(jù)時、進行數(shù)據(jù)的嚴格校驗,保證數(shù)據(jù)不能插入,報error錯誤,用于事物時,會進行事物回滾.

 

STRICT_TRANS_TABLES模式。嚴格模式,進行數(shù)據(jù)的嚴格校驗,錯誤數(shù)據(jù)不能插入,報error錯誤.

 

server_id = 706 //主從復制唯一的服務辨識號,數(shù)值位于 1

#replicate-do-db = posp  //定義唯一復制的庫

#replicate-ignore-db = mysql //定義唯一復制的庫

#log-slave-updates = 1 //這個選項之再主從復制。從服務器上打開復制主的信息

event_scheduler=1   //打開時間調(diào)度器

 

max_connections = 2000 //#最大并發(fā)連接數(shù),增大該值需要相應增加允許打開的文件描述符數(shù)

max_connect_errors = 10000 //如果某個用戶發(fā)起的連接error超過該數(shù)值,則該用戶的下次連接將被阻塞,

interactive_timeout = 600 //服務器關(guān)閉交互連接前等待活動的秒數(shù)

wait_timeout = 600 //服務器關(guān)閉非交互連接之前等待活動的秒數(shù)

skip-name-resolve //#garnt時,必須使用ip,不能使用主機名,禁用DNS解析

sync_binlog=0 //可以保證事務的安全。缺省為0

log_bin_trust_function_creators = 1  //打開mysql可自定義函數(shù)

 

character-set-server = utf8  //設定字符集

default_storage_engine = InnoDB //定義默認引擎

 

#log

log-bin = /data/mysqldb/binlog/mysql-bin  //指定binlog二進制日志的文件名稱

binlog_cache_size = 32m   //binlog的緩存大小

max_binlog_cache_size = 10g //設定最大的binlog緩存

binlog_stmt_cache_size = 32m //設定最小的binlo緩存

table_open_cache = 2048 //表描述符緩存大小,可減少文件打開/關(guān)閉次數(shù)

max_binlog_size = 1024m //設置binlog日志文件最大為1G

binlog_format = mixed //binlog日志格式.

log_output = FILE //確認輸出到日志文件

log-error = /data/mysqldb/log/mysql-error.log //mysql系統(tǒng)錯誤日志輸出

slow_query_log = 1  //打開慢日志記錄

slow_query_log_file = /data/mysqldb/log/mysql-slow_query.log //定義慢日志輸出的路徑

general_log = 0  //定義普通日志

general_log_file = /data/mysqldb/log/mysql-general-query.log //定義普通日志輸出的路徑

expire-logs-days = 30 //日志保留的時間為30

relay-log = /data/mysqldb/binlog/relay-bin //定義reloa_log復制的地址

relay-log-index= /data/mysqldb/binlog/relay-bin.index //定義reloa_log索引

 

#buffer

sort_buffer_size = 2m  //#MyISAM表發(fā)生變化時重新排序所需的緩沖。一般64M足矣

read_buffer_size = 2m //用來做MyISAM表全表掃描的緩沖大小.

read_rnd_buffer_size = 2m //#當在排序之后,從一個已經(jīng)排序好的序列中讀取行時,行數(shù)據(jù)將從這個緩沖中讀取來防止磁盤尋道

join_buffer_size = 2m //# InnoDB用來緩存數(shù)據(jù)和

 

net_buffer_length = 16k //執(zhí)行mysqldump時,net buffer length的最大上限是16Mb,默認值是1Mb

max_allowed_packet = 512m  //每個連接獨立的大小.大小動態(tài)增加

bulk_insert_buffer_size = 32m //# 當突發(fā)插入被檢測到時此緩沖將被分配用于myisam

max_heap_table_size = 512m//#內(nèi)存表的大小

tmp_table_size = 512m//# 內(nèi)部(內(nèi)存中)臨時表的最大大小

thread_cache_size = 100 //#緩存可重用的線程數(shù),可以適當?shù)恼{(diào)整

query_cache_size = 256m //#指定MySQL查詢結(jié)果緩沖區(qū)的大小。調(diào)優(yōu)可以適當調(diào)整

query_cache_limit = 10m //#緩存單條SQL的結(jié)果集上限。默認4KB。調(diào)優(yōu)可以適當調(diào)整

query_cache_min_res_unit = 4k

key_buffer_size = 16m //#關(guān)鍵詞緩沖的大小, 一般用來緩沖MyISAM表的索引塊

myisam_sort_buffer_size = 64m //# 這在每個線程中被分配.所以在設置大值時需要小心

myisam_max_sort_file_size = 10g //MySQL重建索引時所允許的最大臨時文件的大小如果文件大小比此值更大,索引會通過鍵值緩沖創(chuàng)建(更慢)

myisam_repair_threads = 1 //#如果一個表擁有超過一個索引, MyISAM

 

#innodb

innodb_file_per_table = 1 #//#可以修改InnoDB為獨立表空間模式,每個數(shù)據(jù)庫的每個表都會生成一個數(shù)據(jù)空間

innodb_data_file_path = ibdata1:2048M:autoextend //#如果你只有單個邏輯驅(qū)動保存你的數(shù)據(jù),一個單個的自增文件就足夠好了

innodb_log_file_size = 128m //#在日志組中每個日志文件的大小,

innodb_log_files_in_group = 3 //# 在日志組中的文件總數(shù)通常來說2~3是比較好的

innodb_buffer_pool_size = 1g //innodb緩存池大小

innodb_buffer_pool_instances = -1

innodb_max_dirty_pages_pct = 70 //#InnoDB緩沖池中最大允許的臟頁面的比例.  60-90都可以

#innodb_thread_concurrency = 8

innodb_flush_method = O_DIRECT

innodb_log_buffer_size = 16m # 用來緩沖日志數(shù)據(jù)的緩沖區(qū)的大小當此值快滿時, InnoDB將必須刷新數(shù)據(jù)到磁盤上

innodb_flush_log_at_trx_commit = 2

0代表日志只大約每秒寫入日志文件并且日志文件刷新到磁盤# 2代表日志寫入日志文件在每次提交后,但是日志文件只有大約每秒才會刷新到磁盤上

 

[mysql]

no-auto-rehash #可以在命令可以使用tab鍵補齊

prompt = (\u@\h) [\d]\_ #Mysql命令顯示主機名字

default-character-set = utf8  //設定字符集合

 

 

2.6、啟動服務和設置環(huán)境變量

#:vim /etc/profile

MYSQL=/usr/local/services/mysql/bin

PATH=$PATH:$MYSQL

export PATH

#:source /etc/profile

啟動服務

# /etc/init.d/mysqld start

注意:

log_slave_updates

主從復制的時候。在主(master)服務器上關(guān)閉此選項,在從(slave)上面開啟此選項

 

2.7、本章練習題目

  (1)、要求安裝Mysql數(shù)據(jù)庫版本號及包名為:mysql-5.1.50.tar.gz

  (2)、安裝目錄為/usr/local/services

  (3)、數(shù)據(jù)存儲目錄為/dbdata

  (4)、配置文件存放為/etc/my.cnf

  (5)、用戶名為mysql

  (6)、要求設置環(huán)境變量,服務加入開機自動啟動,

向AI問一下細節(jié)

免責聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI