濮阳杆衣贸易有限公司

主頁 > 知識庫 > linux安裝mysql 8.0.x的完整步驟

linux安裝mysql 8.0.x的完整步驟

熱門標簽:昌德訊外呼系統(tǒng) 福建外呼電銷機器人加盟 徐涇鎮(zhèn)騰訊地圖標注 400電話申請廠家現(xiàn)貨 中國地圖標注公司 電話機器人的價格多少錢一個月 自己做地圖標注需要些什么 天津公司外呼系統(tǒng)軟件 百度地圖標注要什么軟件

MySQL

MySQL簡介

MySQL原本是一個開放源代碼的關(guān)系數(shù)據(jù)庫管理系統(tǒng),原開發(fā)者為瑞典的MySQL AB公司,該公司于2008年被昇陽微系統(tǒng)(Sun Microsystems)收購。2009年,甲骨文公司(Oracle)收購昇陽微系統(tǒng)公司,MySQL成為Oracle旗下產(chǎn)品。

MySQL在過去由于性能高、成本低、可靠性好,已經(jīng)成為最流行的開源數(shù)據(jù)庫,因此被廣泛地應用在Internet上的中小型網(wǎng)站中。隨著MySQL的不斷成熟,它也逐漸用于更多大規(guī)模網(wǎng)站和應用,比如維基百科、Google和Facebook等網(wǎng)站。非常流行的開源軟件組合LAMP中的“M”指的就是MySQL。

但被甲骨文公司收購后,Oracle大幅調(diào)漲MySQL商業(yè)版的售價,且甲骨文公司不再支持另一個自由軟件項目OpenSolaris的發(fā)展,因此導致自由軟件社群們對于Oracle是否還會持續(xù)支持MySQL社群版(MySQL之中唯一的免費版本)有所隱憂,MySQL的創(chuàng)始人麥克爾·維德紐斯以MySQL為基礎(chǔ),成立分支計劃MariaDB。而原先一些使用MySQL的開源軟件逐漸轉(zhuǎn)向MariaDB或其它的數(shù)據(jù)庫。例如維基百科已于2013年正式宣布將從MySQL遷移到MariaDB數(shù)據(jù)庫[6]。

關(guān)系型數(shù)據(jù)庫

關(guān)系數(shù)據(jù)庫(英語:Relational database),是創(chuàng)建在關(guān)系模型基礎(chǔ)上的數(shù)據(jù)庫,借助于集合代數(shù)等數(shù)學概念和方法來處理數(shù)據(jù)庫中的數(shù)據(jù)。現(xiàn)實世界中的各種實體以及實體之間的各種聯(lián)系均用關(guān)系模型來表示。關(guān)系模型是由埃德加·科德于1970年首先提出的,并配合“科德十二定律”?,F(xiàn)如今雖然對此模型有一些批評意見,但它還是數(shù)據(jù)存儲的傳統(tǒng)標準。標準數(shù)據(jù)查詢語言SQL就是一種基于關(guān)系數(shù)據(jù)庫的語言,這種語言執(zhí)行對關(guān)系數(shù)據(jù)庫中數(shù)據(jù)的檢索和操作。

關(guān)系模型由關(guān)系數(shù)據(jù)結(jié)構(gòu)、關(guān)系操作集合、關(guān)系完整性約束三部分組成。

MySQL特性

MySQL是一種使用廣泛的數(shù)據(jù)庫,特性如下:

  • 使用C和C++編寫,并使用了多種編譯器進行測試,保證源代碼的可移植性  
  • 支持AIX、FreeBSD、HP-UX、Linux、Mac OS、Novell Netware、OpenBSD、OS/2
  • Wrap、Solaris、Windows等多種操作系統(tǒng)。   
  • 為多種編程語言提供了API。編程語言包括C、C++、Python、Java、Perl、PHP、Eiffel、Ruby和Tcl等。   
  • 支持多線程,充分利用CPU資源   
  • 優(yōu)化的SQL查詢算法,有效地提高查詢速度
  • 既能夠作為一個單獨的應用程序應用在客戶端服務器網(wǎng)絡環(huán)境中,也能夠作為一個庫而
  • 嵌入到其他的軟件中提供多語言支持,常見的編碼如中文的GB 2312、BIG5,日文的Shift_JIS等都可以用作數(shù)據(jù)表名和數(shù)據(jù)列名
  • 提供TCP/IP、ODBC和JDBC等多種數(shù)據(jù)庫連接途徑
  • 提供用于管理、檢查、優(yōu)化數(shù)據(jù)庫操作的管理工具
  • 可以處理擁有上千萬條記錄的大型數(shù)據(jù)庫

MySQL應用

與大型數(shù)據(jù)庫例如Oracle、DB2、SQL Server等相比,MySQL自有它的不足之處,如規(guī)模小、功能有限(MySQL Cluster的功能和效率都相對比較差)等,但是這絲毫也沒有減少它受歡迎的程度。對于一般的個人使用者和中小型企業(yè)來說,MySQL提供的功能已經(jīng)綽綽有余,而且由于MySQL是開放源碼軟件,因此可以大大降低總體擁有成本。 目前Internet上流行的網(wǎng)站構(gòu)架方式是LAMP(Linux+Apache+MySQL+PHP),即使用Linux作為操作系統(tǒng),Apache作為Web服務器,MySQL作為數(shù)據(jù)庫,PHP作為服務器端腳本解釋器。由于Linux+Apache+MySQL+PHP都是自由或開放源碼軟件(FLOSS),因此使用LAMP不用花一分錢就可以建立起一個穩(wěn)定、免費的網(wǎng)站系統(tǒng)。

MySLQ存儲引擎

  • MySQL存儲引擎簡介

插件式存儲引擎是MySQL數(shù)據(jù)庫最重要的特性之一,用戶可以根據(jù)應用的需要選擇如何存儲和索引數(shù)據(jù)庫,是否使用事務等。mySQL默認支持多種存儲引擎,以適應不同領(lǐng)域的數(shù)據(jù)庫應用需要。用戶可以通過選擇使用不同的存儲引擎提高應用的效率,提供靈活的存儲,用戶設置可以按照自己的需要定制和使用自己的存儲引擎,以實現(xiàn)最大程度的可定制性。

MySQL常用的存儲引擎為MyISAM、InnoDB、MEMORY、MERGE,其中InnoDB提供事務安全表,其他存儲引擎都是非事務安全表。

MyISAM是MySQL的默認存儲引擎。MyISAM不支持事務、也不支持外鍵,但其訪問速度快,對事務完整性沒有要求。

InnoDB存儲引擎提供了具有提交、回滾和崩潰恢復能力的事務安全。但是比起MyISAM存儲引擎,InnoDB寫的處理效率差一些并且會占用更多的磁盤空間以保留數(shù)據(jù)和索引。MySQL支持外鍵存儲引擎只有InnoDB,在創(chuàng)建外鍵的時候,要求附表必須有對應的索引,子表在創(chuàng)建外鍵的時候也會自動創(chuàng)建對應的索引。

  • MySQL存儲引擎特性

主要體現(xiàn)在性能、事務、并發(fā)控制、參照完整性、緩存、故障恢復,備份及回存等幾個方面

目前比較普及的存儲引擎是MyISAM和InnoDB,而MyISAM又是絕大部分Web應用的首選。MyISAM與InnoDB的主要的不同點在于性能和事務控制上。

MyISAM是早期ISAM(Indexed Sequential Access Method)的擴展實現(xiàn),ISAM被設計為適合處理讀頻率遠大于寫頻率的情況,因此ISAM以及后來的MyISAM都沒有考慮對事物的支持,不需要事務記錄,ISAM的查詢效率相當可觀,而且內(nèi)存占用很少。

MyISAM在繼承了ISAM優(yōu)點的同時,與時俱進的提供了大量實用的新特性和相關(guān)工具。例如考慮到并發(fā)控制,提供了表級鎖。

而且由于MyISAM是每張表使用各自獨立的存儲文件(MYD數(shù)據(jù)文件和MYI索引文件),使得備份及恢復十分方便(拷貝覆蓋即可),而且還支持在線恢復。

所以如果應用不需要事務,不支持外鍵,處理的只是基本的CRUD(增刪改查)操作,那么MyISAM是不二選擇。

linux (CentOS7.5_x86_64)下安裝mysql8.0

# 下載mysql 

$ wget http://mirrors.163.com/mysql/Downloads/MySQL-8.0/mysql-8.0.13-el7-x86_64.tar.gz

# 解壓
$ mysql tar -zxvf mysql-8.0.4-rc-linux-glibc2.12-x86_64.tar.gz -C /usr/local

# 修改文件夾名稱 
$ mv mysql-8.0.4-rc-linux-glibc2.12-x86_64/ mysql

添加默認配置文件
$ vim/etc/my.cnf

[client]
port=3306
socket=/tmp/mysql.sock

[mysqld]
port=3306
user=mysql
socket=/tmp/mysql.sock
basedir=/usr/local/mysql
datadir=/usr/local/mysql/data


# 創(chuàng)建mysql組
$ groupadd mysql

# 創(chuàng)建mysql用戶
$ useradd -g mysql mysql

# 創(chuàng)建mysql數(shù)據(jù)目錄
$ mkdir $MYSQL_HOME/data

# 初始化mysql 
$ /usr/local/mysql/bin/mysqld --initialize --user=mysql --basedir=/usr/local/mysql/ --datadir=/usr/local/mysql/data/


# 初始化報錯
bin/mysqld: error while loading shared libraries: libaio.so.1: cannot open shared object file: No such file or directory

# 解決方法
yum install -y libaio

# 初始化報錯
2018-07-08T02:53:24.542370Z 0 [System] [MY-010116] /usr/local/mysql/bin/mysqld (mysqld 8.0.4-rc) starting as process 17745 ...
mysqld: Can't create/write to file '/tmp/mysql/data/ibd35qXQ' (Errcode: 13 - Permission denied)
2018-07-08T02:53:24.554816Z 1 [ERROR] [MY-011066] InnoDB: Unable to create temporary file; errno: 13
2018-07-08T02:53:24.554856Z 1 [ERROR] [MY-011066] InnoDB: InnoDB Database creation was aborted with error Generic error. You may need to delete the ibdata1 file before trying to start up again.
2018-07-08T02:53:24.555000Z 0 [ERROR] [MY-010020] Data Dictionary initialization failed.
2018-07-08T02:53:24.555033Z 0 [ERROR] [MY-010119] Aborting
2018-07-08T02:53:24.555919Z 0 [System] [MY-010910] /usr/local/mysql/bin/mysqld: Shutdown complete.

# 解決辦法:修改/tmp/mysql的目錄權(quán)限
$ chown -R mysql:mysql /tmp/mysql


# 初始化成功
> 如果無異常情況日志如下可以看到mysql默認會生成root賬號和密碼root@localhost: /TI(mjVAs1Ta

[root@localhost mysql]# bin/mysqld --initialize --user=mysql --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data
2019-01-29T10:19:34.023997Z 0 [System] [MY-013169] [Server] /usr/local/mysql/bin/mysqld (mysqld 8.0.13) initializing of server in progress as process 4240
2019-01-29T10:19:39.764895Z 5 [Note] [MY-010454] [Server] A temporary password is generated for root@localhost: /TI(mjVAs1Ta
2019-01-29T10:19:43.041419Z 0 [System] [MY-013170] [Server] /usr/local/mysql/bin/mysqld (mysqld 8.0.13) initializing of server has completed

# 拷貝mysql啟動文件到系統(tǒng)初始化目錄
$ cp /usr/local/mysql/support-files/mysql.server /etc/init.d/mysqld


# 啟動mysql服務器
$ service mysqld start

mysql 基本操作

# 使用mysql客戶端連接mysql
$ /usr/local/mysql/bin/mysql -u root -p password

修改mysql的默認初始化密碼
> alter user 'root'@'localhost' identified by 'root';

# 創(chuàng)建用戶 CREATE USER '用戶名稱'@'主機名稱' INDENTIFIED BY '用戶密碼'
> create user 'jack'@'localhost' identified by 'jack';

# 授予權(quán)限 grant 權(quán)限 on 數(shù)據(jù)庫.表 to '用戶名'@'登錄主機' [INDENTIFIED BY '用戶密碼'];
> grant replication slave on *.* to 'jack'@'localhost';

# 刷新
# $ flush privileges; 

# 修改root用戶可以遠程連接
> update mysql.user set host='%' where user='root';

# 查看mysql所用用戶
> select user,host from mysql.user;

# docker 修改mysql的最大連接數(shù)
apt-get update
apt-get install vim
vim /etc/mysql/mysql.conf.d/mysqld.cnf
max_connections=1000

> alter user 'root'@'%' identified with mysql_native_password by 'root';

mysql 集群主從復制

準備兩臺安裝好的mysql服務器

# 配置主服務添加如下配置
$ vim /etc/my.cnf

# 節(jié)點唯一id值
server-id=1

# 開啟二進制日志
log-bin=mysql-bin

# 指定日志格式 有mixed|row|statement 推薦mixed
binlog-format=mixed

# 步進值auto_imcrement。一般有n臺主MySQL就填n(可選配置)
auto_increment_increment=2 

# 起始值。一般填第n臺主MySQL。此時為第一臺主MySQL(可選配置)
auto_increment_offset=1 

# 忽略mysql庫(可選配置)
binlog-ignore=mysql 

# 忽略information_schema庫(可選配置)
binlog-ignore=information_schema 

# 要同步的數(shù)據(jù)庫,默認所有庫(可選配置)
replicate-do-db=db1


# slave 節(jié)點配置

# 節(jié)點唯一id值
server-id=2

# 開啟二進制日志
log-bin=mysql-bin

# 步進值auto_imcrement。一般有n臺主MySQL就填n(可選配置)
auto_increment_increment=2

# 起始值。一般填第n臺主MySQL。此時為第一臺主MySQL(可選配置)
auto_increment_offset=2

# 要同步的數(shù)據(jù)庫,默認所有庫(可選配置)
replicate-do-db=db1


# 查看 master 的狀態(tài) , 尤其是當前的日志及位置
> show master status;
+------------------+----------+--------------+------------------+-------------------+
| File    | Position | Binlog_Do_DB | Binlog_Ignore_DB | Executed_Gtid_Set |
+------------------+----------+--------------+------------------+-------------------+
| mysql-bin.000004 |  1608 |    |     |     |
+------------------+----------+--------------+------------------+-------------------+

# 在slave節(jié)點執(zhí)行如下命令

注意master_log_file 是對應show master status;中file的值,master_log_pos是對應position的值

> change master to
master_host='192.168.79.15',
master_user='root',
master_password='root',
master_log_file='mysql-bin.000009',
master_log_pos=0;

# 啟動 slave 狀態(tài) ( 開始監(jiān)聽 msater 的變化 )
> start slave;

# 查看 slave 的狀態(tài) 
> show slave status\G

*************************** 1. row ***************************
    Slave_IO_State: Waiting for master to send event
     Master_Host: 192.168.79.15
     Master_User: root
     Master_Port: 3306
    Connect_Retry: 60
    Master_Log_File: mysql-bin.000009
   Read_Master_Log_Pos: 863
    Relay_Log_File: node-6-relay-bin.000002
    Relay_Log_Pos: 500
  Relay_Master_Log_File: mysql-bin.000009
    Slave_IO_Running: Yes
   Slave_SQL_Running: Yes
    Replicate_Do_DB: 
   Replicate_Ignore_DB: 
   Replicate_Do_Table: 
  Replicate_Ignore_Table: 
  Replicate_Wild_Do_Table: 
 Replicate_Wild_Ignore_Table: 
     Last_Errno: 0
     Last_Error: 
     Skip_Counter: 0
   Exec_Master_Log_Pos: 863
    Relay_Log_Space: 709
    Until_Condition: None
    Until_Log_File: 
    Until_Log_Pos: 0
   Master_SSL_Allowed: No
   Master_SSL_CA_File: 
   Master_SSL_CA_Path: 
    Master_SSL_Cert: 
   Master_SSL_Cipher: 
    Master_SSL_Key: 
  Seconds_Behind_Master: 0
Master_SSL_Verify_Server_Cert: No
    Last_IO_Errno: 0
    Last_IO_Error: 
    Last_SQL_Errno: 0
    Last_SQL_Error: 
 Replicate_Ignore_Server_Ids: 
    Master_Server_Id: 1
     Master_UUID: 6291c709-23af-11e9-99fb-000c29071862
    Master_Info_File: mysql.slave_master_info
     SQL_Delay: 0
   SQL_Remaining_Delay: NULL
  Slave_SQL_Running_State: Slave has read all relay log; waiting for more updates
   Master_Retry_Count: 86400
     Master_Bind: 
  Last_IO_Error_Timestamp: 
  Last_SQL_Error_Timestamp: 
    Master_SSL_Crl: 
   Master_SSL_Crlpath: 
   Retrieved_Gtid_Set: 
   Executed_Gtid_Set: 
    Auto_Position: 0
   Replicate_Rewrite_DB: 
     Channel_Name: 
   Master_TLS_Version: 
  Master_public_key_path: 
  Get_master_public_key: 0

# 當Slave_IO_Running: Yes和Slave_SQL_Running: Yes都為yes是說明主從復制正常


#重置 slave 狀態(tài) .
$ reset slave;

#暫停 slave 狀態(tài) ;
$ stop slave;

總結(jié)

以上就是這篇文章的全部內(nèi)容了,希望本文的內(nèi)容對大家的學習或者工作具有一定的參考學習價值,謝謝大家對腳本之家的支持。

您可能感興趣的文章:
  • Ubuntu18.04(linux)安裝MySQL的方法步驟
  • Linux下mysql 8.0安裝教程
  • linux上免安裝版MySQL5.7.18的教程詳解
  • Linux(Ubuntu)下Mysql5.6.28安裝配置方法圖文教程
  • Linux下MySQL5.7.18 yum方式從卸載到安裝過程圖解
  • Oracle Linux 6.8安裝 mysql 5.7.17的詳細教程
  • 使用YUM在Linux(CentOS 7)下安裝mysql 5.7.18的教程詳解
  • linux系統(tǒng)ubuntu18.04安裝mysql 5.7
  • Linux yum 命令安裝mysql8.0的教程詳解
  • Linux下mysql 8.0.15 安裝配置圖文教程以及修改密碼

標簽:昌都 駐馬店 鄂爾多斯 黔西 荊門 北京 陜西 梅河口

巨人網(wǎng)絡通訊聲明:本文標題《linux安裝mysql 8.0.x的完整步驟》,本文關(guān)鍵詞  linux,安裝,mysql,8.0.x,的,完整,;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問題,煩請?zhí)峁┫嚓P(guān)信息告之我們,我們將及時溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡,涉及言論、版權(quán)與本站無關(guān)。
  • 相關(guān)文章
  • 下面列出與本文章《linux安裝mysql 8.0.x的完整步驟》相關(guān)的同類信息!
  • 本頁收集關(guān)于linux安裝mysql 8.0.x的完整步驟的相關(guān)信息資訊供網(wǎng)民參考!
  • 推薦文章
    五指山市| 海门市| 黎城县| 西平县| 南岸区| 双牌县| 钟山县| 泸州市| 连平县| 尚志市| 隆德县| 新乐市| 江山市| 肇源县| 承德市| 渑池县| 寻甸| 项城市| 钟祥市| 仙游县| 凤庆县| 沙坪坝区| 和龙市| 涟源市| 宝坻区| 达日县| 巴林右旗| 山西省| 留坝县| 湘阴县| 昂仁县| 获嘉县| 措美县| 湄潭县| 舟曲县| 通许县| 丹寨县| 晋州市| 琼中| 黑龙江省| 达日县|