下面講講關(guān)于操作mysql5.7升級到mariadb10.2.16方法,文字的奧妙在于貼近主題相關(guān)。所以,閑話就不談了,我們直接看下文吧,相信看完操作mysql5.7升級到mariadb10.2.16方法這篇文章你一定會有所受益。
創(chuàng)新互聯(lián)是一家集網(wǎng)站建設(shè),金川企業(yè)網(wǎng)站建設(shè),金川品牌網(wǎng)站建設(shè),網(wǎng)站定制,金川網(wǎng)站建設(shè)報價,網(wǎng)絡(luò)營銷,網(wǎng)絡(luò)優(yōu)化,金川網(wǎng)站推廣為一體的創(chuàng)新建站企業(yè),幫助傳統(tǒng)企業(yè)提升企業(yè)形象加強(qiáng)企業(yè)競爭力。可充分滿足這一群體相比中小企業(yè)更為豐富、高端、多元的互聯(lián)網(wǎng)需求。同時我們時刻保持專業(yè)、時尚、前沿,時刻以成就客戶成長自我,堅持不斷學(xué)習(xí)、思考、沉淀、凈化自己,讓我們?yōu)楦嗟钠髽I(yè)打造出實用型網(wǎng)站。記錄一個mysql數(shù)據(jù)庫升級操作。
客戶環(huán)境不能連外網(wǎng),因此所有程序應(yīng)用的安裝都只能通過提前下載離線軟件安裝包上傳到目標(biāo)云服務(wù)器上進(jìn)行安裝。原來的mysql5.7數(shù)據(jù)庫也是通過rpm軟件包進(jìn)行安裝的。
數(shù)據(jù)庫云服務(wù)器操作系統(tǒng)是紅帽的rhel7.2 ,64位。
客戶的一臺mysql云服務(wù)器漏洞掃描發(fā)現(xiàn)有漏洞,數(shù)據(jù)庫版本如下:
mysql> status -------------- mysql Ver 14.14 Distrib 5.7.20, for Linux (x86_64) using EditLine wrapper Connection id:15176291 Current database: Current user:mysql@localhost SSL:Not in use Current pager:stdout Using outfile:'' Using delimiter:; Server version:5.5.5-10.0.21-MariaDB-log MariaDB Server Protocol version:10 Connection:Localhost via UNIX socket Server characterset:latin1 Db characterset:latin1 Client characterset:utf8 Conn. characterset:utf8 UNIX socket:/opt/beh/core/mysql/sock/mysql.sock Uptime:107 days 2 hours 11 min 53 sec版本有點奇怪,直接使用mysql --version看到的版本是mysql server 5.7.2 ,但是上面status中的Server version:卻是5.5.5-10.0.21-MariaDB-log MariaDB Server。反正不管怎么樣,都是需要升級到 mariadb 10.1以上的版本。到官網(wǎng)上查看最新的穩(wěn)定版本,官網(wǎng)下載地址如下:
https://downloads.mariadb.org/
看到10.2.16是穩(wěn)定版本,該版本的下載地址如下:
http://mariadb.mirror.iweb.com//mariadb-10.2.16/bintar-linux-systemd-x86_64/mariadb-10.2.16-linux-systemd-x86_64.tar.gz
升級思路:
由于版本跨度太大,不適合逐個版本升級,采用重新安裝的方法,即將原來的版本卸載,然后重新安裝新的版本。
為了保證數(shù)據(jù)安全,選擇另一臺同版本操作系統(tǒng)的云服務(wù)器作為備機(jī),安裝一模一樣的數(shù)據(jù)庫版本,并且將原數(shù)據(jù)庫云服務(wù)器的數(shù)據(jù)庫通過mysqldump命令導(dǎo)出,并導(dǎo)入的備機(jī)中。備機(jī)準(zhǔn)備好之后,業(yè)務(wù)應(yīng)用程序修改數(shù)據(jù)庫連接配置連接到備機(jī)數(shù)據(jù)庫。然后再對原數(shù)據(jù)庫云服務(wù)器進(jìn)行數(shù)據(jù)庫升級操作。
操作記錄:
數(shù)據(jù)庫備份:
數(shù)據(jù)庫備機(jī)安裝:
原數(shù)據(jù)庫云服務(wù)器已經(jīng)安裝的rpm包如下:
[root@hadoop001 dbdata]# rpm -qa|grep mysql
mysql-community-client-5.7.20-1.el7.x86_64
mysql-community-common-5.7.20-1.el7.x86_64
mysql-community-libs-5.7.20-1.el7.x86_64
mysql-community-devel-5.7.20-1.el7.x86_64
mysql-community-server-5.7.20-1.el7.x86_64
原數(shù)據(jù)庫云服務(wù)器中還保留著最初的mysql5.7的所有安裝rpm包,將原數(shù)據(jù)庫云服務(wù)器中的rpm安裝包文件全部拷貝到備機(jī)中: scp mysql-community-* hadoop002:/data_china/ywb/ 在備機(jī)中安裝mysql相關(guān)軟件包: yum localinstall mysql-community-* 備機(jī)啟動mysql數(shù)據(jù)庫: systemctl start mysql數(shù)據(jù)庫備機(jī)數(shù)據(jù)導(dǎo)入:
將原數(shù)據(jù)庫中的數(shù)據(jù)庫備份文件傳到備機(jī): scp mysqldump20180712.sql hadoop002:/data_china/ywb/ 在備機(jī)上恢復(fù)mysql數(shù)據(jù)庫: mysql -u root -p <mysqldump20180712.sql 備機(jī)上驗證是否恢復(fù)成功: mysql -u root -p mysql>show databases; mysql>use hive; mysql>show tables; mysql>quit;驗證成功之后,通知業(yè)務(wù)應(yīng)用端修改程序端數(shù)據(jù)庫連接配置,使業(yè)務(wù)應(yīng)用連接到備機(jī)數(shù)據(jù)庫。一切正常之后,開始對原數(shù)據(jù)庫云服務(wù)器進(jìn)行升級。
原數(shù)據(jù)庫升級:
1、刪除原mysql5.7版本數(shù)據(jù)庫:
上面兩個命令會查找mysql相關(guān)文件,將相關(guān)的文件能刪除的都刪除,如果為了保險,可以將一些不確定能刪的文件mv到一個特定目錄。謹(jǐn)慎些還是不會錯。
mysql5.7刪除干凈之后,接下來就是按照新的mariadb 10.2.16版本的數(shù)據(jù)庫:
2、安裝新版本mariadb 10.2.16 數(shù)據(jù)庫
將上面準(zhǔn)備好的軟件安裝包mariadb-10.2.16-linux-systemd-x86_64.tar.gz 上傳到原數(shù)據(jù)庫云服務(wù)器hadoop001中,然后解壓:
tar xzvf mariadb-10.2.16-linux-systemd-x86_64.tar.gz
#更改安裝目錄:注意不要提前建立/usr/local/mysql目錄,直接放過去即可 mv mariadb-10.2.16-linux-systemd-x86_64 /usr/local/mysql/ #進(jìn)入/usr/local/mysql目錄 [root@toydns mysql]#cd /usr/local/mysql #在/usr/local/mysql/support-files/下的配置文件模板,已經(jīng)配置好的部分參數(shù),分別用于不同的環(huán)境,這里說明一下: my-small.cnf 這個是為小型數(shù)據(jù)庫或者個人測試使用的,不能用于生產(chǎn)環(huán)境 my-medium.cnf 這個適用于中等規(guī)模的數(shù)據(jù)庫,比如個人項目或者小型企業(yè)項目中, my-large.cnf 一般用于專門提供SQL服務(wù)的云服務(wù)器中,即專門運(yùn)行數(shù)據(jù)庫服務(wù)的主機(jī),配置要求要更高一些,適用于生產(chǎn)環(huán)境 my-huge.cnf 用于企業(yè)級云服務(wù)器中的數(shù)據(jù)庫服務(wù),一般更多用于生產(chǎn)環(huán)境使用 所以根據(jù)以上幾個文件,如果個人使用或者測試,那么可以使用前兩個模板;企業(yè)云服務(wù)器或者64G以上的高配置服務(wù)器可以使用后面兩個模板,另外也可以根據(jù)自己的需求來加大參數(shù)和擴(kuò)充配置獲得更好的性能。 [root@toydns mysql]# ll support-files/ -rw-r--r--. 1 1021 1004 4914 Nov 27 18:32 my-huge.cnf -rw-r--r--. 1 1021 1004 20421 Nov 27 18:32 my-innodb-heavy-4G.cnf -rw-r--r--. 1 1021 1004 4901 Nov 27 18:32 my-large.cnf -rw-r--r--. 1 1021 1004 4914 Nov 27 18:32 my-medium.cnf -rw-r--r--. 1 1021 1004 2840 Nov 27 18:32 my-small.cnf #復(fù)制my-medium.cnf到etc下并改名為my.cnf,修改數(shù)據(jù)庫文件存放的目錄 cp support-files/my-medium.cnf /etc/my.cnf vi /etc/my.cnf # The MariaDB server [mysqld] port = 3306 socket = /tmp/mysql.sock basedir = /usr/local/mysql //mysql目錄 datadir= /var/lib/mysql //數(shù)據(jù)存放位置 innodb_file_per_table = on //每張表一個單獨文件,便于管理 skip_name_resolve = on //忽略反向解析,加快訪問速度 skip-external-locking key_buffer_size = 16M max_allowed_packet = 1M table_open_cache = 64 sort_buffer_size = 512K net_buffer_length = 8K read_buffer_size = 256K read_rnd_buffer_size = 512K myisam_sort_buffer_size = 8M :wq保存后給權(quán)限 注意,datadir= /var/lib/mysql 這個目錄需要提前準(zhǔn)備好: mkdir /var/lib/mysql chown mysql:mysql /var/lib/mysql #添加MySQL到PATH環(huán)境變量里面去,省的以后敲命令麻煩 [root@toydns mysql]# vi /etc/profile.d/mysql.sh export PATH=/usr/local/mysql/bin:$PATH source /etc/profile.d/mysql.sh 使這個配置文件及時生效 #初始化mysql /usr/local/mysql/scripts/mysql_install_db --user=mysql #創(chuàng)建mariadb自啟動腳本,并加入開機(jī)啟動 cp /usr/local/mysql/support-files/systemd/mariadb.service /usr/lib/systemd/system/ 此處有坑,特別注意: /usr/lib/systemd/system/mariadb.service 這個腳本中有一個參數(shù) ProtectSystem=full ,需要改為false # Prevent writes to /usr, /boot, and /etc ProtectSystem=false 默認(rèn)情況下ProtectSystem=full,/usr目錄被保護(hù)不能寫入數(shù)據(jù),上面設(shè)置的datadir目錄最初是設(shè)置在/usr/local/mysql/data中,執(zhí)行 systemctl start mariadb 的時候會報錯無法寫入XXX文件,因為/usr整個目錄都被寫保護(hù)。解決方法有兩個,一個是將ProtectSystem=full 改為ProtectSystem=false ,一個就是更改datadir目錄位置,不要放在/usr目錄下。我在這里是2個地方都改掉。 最后使能服務(wù),使之主機(jī)重啟后能自動啟動。 systemctl enable mariadb 啟動mysql數(shù)據(jù)庫: systemctl start mariadbMySQL的安全設(shè)置
[root@toydns mysql]# ./bin/mysql_secure_installation NOTE: RUNNING ALL PARTS OF THIS SCRIPT IS RECOMMENDED FOR ALL MariaDB SERVERS IN PRODUCTION USE! PLEASE READ EACH STEP CAREFULLY! In order to log into MariaDB to secure it, we'll need the current password for the root user. If you've just installed MariaDB, and you haven't set the root password yet, the password will be blank, so you should just press enter here. Enter current password for root (enter for none): //直接回車,默認(rèn)為空 OK, successfully used password, moving on... Setting the root password ensures that nobody can log into the MariaDB root user without the proper authorisation. Set root password? [Y/n] y //是否設(shè)置MySQL管理員root的密碼,y設(shè)置,輸入2次 New password: Re-enter new password: Password updated successfully! Reloading privilege tables.. ... Success! By default, a MariaDB installation has an anonymous user, allowing anyone to log into MariaDB without having to have a user account created for them. This is intended only for testing, and to make the installation go a bit smoother. You should remove them before moving into a production environment. Remove anonymous users? [Y/n] y //是否刪除匿名賬戶 y刪除 ... Success! Normally, root should only be allowed to connect from 'localhost'. This ensures that someone cannot guess at the root password from the network. Disallow root login remotely? [Y/n] n //是否不允許root用戶遠(yuǎn)程登陸,n不禁用 ... skipping. By default, MariaDB comes with a database named 'test' that anyone can access. This is also intended only for testing, and should be removed before moving into a production environment. Remove test database and access to it? [Y/n] y //是否刪除test測試數(shù)據(jù)庫,y刪除 - Dropping test database... ... Success! - Removing privileges on test database... ... Success! Reloading the privilege tables will ensure that all changes made so far will take effect immediately. Reload privilege tables now? [Y/n] y //重新加載可用的數(shù)據(jù)庫表 y 是 ... Success! Cleaning up... All done! If you've completed all of the above steps, your MariaDB installation should now be secure. Thanks for using MariaDB!3、導(dǎo)入數(shù)據(jù)庫備份
新版本數(shù)據(jù)庫mariadb 10.2.16 安裝完成之后,將原來備份的數(shù)據(jù)庫導(dǎo)入:
mysql -u root -p <mysqldump20180712.sql注意,如果應(yīng)用端在這段時間有數(shù)據(jù)更新,需要從備機(jī)導(dǎo)出數(shù)據(jù)庫文件,使用備機(jī)的最新數(shù)據(jù)備份進(jìn)行恢復(fù)。
收尾工作:
所有這些工作完成后,通知應(yīng)用業(yè)務(wù)廠家將應(yīng)用的數(shù)據(jù)庫連接指向升級后的數(shù)據(jù)庫。
由于原來的數(shù)據(jù)庫版本是mysql5.7,最新的數(shù)據(jù)庫是mariadb10.2.16,應(yīng)用端的java程序連接driver需要改,連接字符串也需要修改。這一塊內(nèi)容不做描述。
應(yīng)用廠家的應(yīng)用程序使用的普通用戶,比如hadoop用戶,用戶的環(huán)境變量和用戶權(quán)限需要做一定的設(shè)置,環(huán)境變量參考在用戶目錄下的 .bashrc 或者 .bash_profile 中增加這一行:
export PATH=/usr/local/mysql/bin:$PATH 修改后運(yùn)行source命令使之生效: source ~/.bashrc 進(jìn)入mysql進(jìn)行權(quán)限賦予: grant all privileges on *.* to hadoop@"%" identified by 'xxxxxx'; flush privileges;總結(jié):
由于版本跨度太大,mysql5.7到mariadb10.2.16 的升級其實都不能叫做“升級”了,實際是就是新安裝,關(guān)鍵是找到備機(jī),將原有的數(shù)據(jù)庫備份到備機(jī)上解決后面重裝數(shù)據(jù)庫的后顧之憂。
數(shù)據(jù)庫安裝的方法可以通過聯(lián)網(wǎng)yum 安裝,或者離線通過軟件包進(jìn)行安裝,在這個案例中,由于客戶云服務(wù)器不能連接外網(wǎng),因此全部的安裝都是使用下載好軟件安裝包進(jìn)行安裝。這種離線安裝方式相對來說效率更低一些,也容易出錯。
對于以上操作mysql5.7升級到mariadb10.2.16方法相關(guān)內(nèi)容,大家還有什么不明白的地方嗎?或者想要了解更多相關(guān),可以繼續(xù)關(guān)注我們的行業(yè)資訊板塊。
另外有需要云服務(wù)器可以了解下創(chuàng)新互聯(lián)cdcxhl.cn,海內(nèi)外云服務(wù)器15元起步,三天無理由+7*72小時售后在線,公司持有idc許可證,提供“云服務(wù)器、裸金屬服務(wù)器、高防服務(wù)器、香港服務(wù)器、美國服務(wù)器、虛擬主機(jī)、免備案服務(wù)器”等云主機(jī)租用服務(wù)以及企業(yè)上云的綜合解決方案,具有“安全穩(wěn)定、簡單易用、服務(wù)可用性高、性價比高”等特點與優(yōu)勢,專為企業(yè)上云打造定制,能夠滿足用戶豐富、多元化的應(yīng)用場景需求。
新聞名稱:操作mysql5.7升級到mariadb10.2.16方法-創(chuàng)新互聯(lián)
網(wǎng)頁鏈接:http://www.rwnh.cn/article22/cegejc.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供微信小程序、微信公眾號、外貿(mào)網(wǎng)站建設(shè)、服務(wù)器托管、虛擬主機(jī)、商城網(wǎng)站
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)
猜你還喜歡下面的內(nèi)容