溫馨提示×

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

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

基于centos7搭建MySQL數(shù)據(jù)庫(kù)

發(fā)布時(shí)間:2020-02-14 11:07:31 來(lái)源:網(wǎng)絡(luò) 閱讀:422 作者:mb5c7bb57d7f7e8 欄目:系統(tǒng)運(yùn)維

本文包括mysql服務(wù)的安裝配置,和簡(jiǎn)單的使用,還包括了對(duì)mysql用戶賬號(hào)的授權(quán)管理,前部分為安裝,后面一半為用戶授權(quán)管理及簡(jiǎn)單使用(增刪改查):

安裝前準(zhǔn)備:
1、centos7一個(gè),準(zhǔn)備系統(tǒng)映像,自行配置yum倉(cāng)庫(kù);
2、下載安裝所需軟件包,鏈接: https://pan.baidu.com/s/13YAoybOtX55XKGQIzIxsIA
一、安裝配置MySQL數(shù)據(jù)庫(kù):

為了確保MySQL數(shù)據(jù)庫(kù)功能的完整性、可定制性,我采用了源代碼編譯安裝的方式安裝MySQL數(shù)據(jù)庫(kù)系統(tǒng),MySQL5.X系列版本的使用最為廣泛,該版本的穩(wěn)定性、兼容性都不錯(cuò),下載源碼包的官方站點(diǎn)為 https://www.mysql.com 。

現(xiàn)在MySQL已經(jīng)被甲骨文公司收購(gòu)了,而且甲骨文公司有意將MySQL發(fā)展為一個(gè)收費(fèi)的產(chǎn)品,所以Linux為了避免以后的版權(quán)問(wèn)題,就將MySQL數(shù)據(jù)庫(kù)改成了MariaDB,MariaDB和MySQL在功能和使用上,并沒(méi)有太大的區(qū)別,不過(guò)呢,大多數(shù)認(rèn)為MySQL源碼安裝比使用Linux系統(tǒng)盤(pán)中的MariaDB要好一些,所以,還是使用源碼安裝吧,起碼現(xiàn)在還是免費(fèi)的。

1、為了避免發(fā)生程序沖突、端口沖突等問(wèn)題,可以先執(zhí)行以下命令,進(jìn)行刪除系統(tǒng)自帶的mysql程序:


[root@localhost ~]# yum -y erase mysql

2、掛載centos系統(tǒng)盤(pán),安裝ncurses-devel包:


[root@localhost ~]# mount /dev/cdrom /media
[root@localhost ~]# cd /media/Packages/
[root@localhost Packages]# rpm -ivh ncurses-devel-5.9-14.20130511.el7_4.x86_64.rpm 

3、由于mysql 5.x系列版本需要cmake編譯安裝,所以繼續(xù)安裝cmake包:


[root@localhost media]# tar zxf cmake-2.8.6.tar.gz -C /tmp                 #解包
[root@localhost media]# cd /tmp/cmake-2.8.6/
[root@localhost cmake-2.8.6]# ./configure && gmake && gmake install      #配置,編譯安裝

4、創(chuàng)建專(zhuān)門(mén)用來(lái)運(yùn)行mysql服務(wù)的用戶,此用戶不需要直接登錄到系統(tǒng):


[root@localhost cmake-2.8.6]# groupadd mysql
[root@localhost cmake-2.8.6]# useradd -M -s /sbin/nologin mysql -g mysql

5、將下載的mysql源碼包解壓,并進(jìn)行配置,編譯及安裝(千萬(wàn)要注意大小寫(xiě),不要打錯(cuò)配置項(xiàng),就算錯(cuò)誤也可以繼續(xù)后續(xù)的安裝,但是,最后服務(wù)是無(wú)法啟動(dòng)的,千萬(wàn)不要打錯(cuò)字母,千萬(wàn)不要打錯(cuò)字母,千萬(wàn)不要打錯(cuò)字母,重要的事情說(shuō)三遍):


[root@localhost media]#tar zxf mysql-5.6.36.tar.gz -C /tmp              #解壓至/tmp目錄
[root@localhost cmake-2.8.6]# cd /tmp/mysql-5.6.36             #切換至展開(kāi)后的源碼目錄
[root@localhost mysql-5.6.36]# cmake -DCMAKE_INSTALL_PREFIX=/usr/local/mysql 
-DSYSCONFDIR=/etc -DDEFAULT_CHARSET=utf8 
-DDEFAULT_COLLATION=utf8_general_ci -DWITH_EXTRA_CHARSETS=all
[root@localhost mysql-5.6.36]# make && make install          #編譯并安裝

3、由于mysql 5.x系列版本需要cmake編譯安裝,所以繼續(xù)安裝cmake包:
基于centos7搭建MySQL數(shù)據(jù)庫(kù)

6、對(duì)數(shù)據(jù)庫(kù)目錄進(jìn)行權(quán)限設(shè)置:


[root@localhost mysql-5.6.36]# chown -R mysql:mysql /usr/local/mysql

7、建立配置文件:

centos 7系統(tǒng)下默認(rèn)支持MariaDB數(shù)據(jù)庫(kù),因此系統(tǒng)默認(rèn)的/etc/my.cnf配置文件中是MariaDB的配置文件,而在mysql的源碼目錄中提供了mysql數(shù)據(jù)庫(kù)默認(rèn)的樣本配置文件,在啟動(dòng)mysql數(shù)據(jù)庫(kù)之前,需要先將原有的my.cnf文件替換為mysql提供的配置文件內(nèi)容。


[root@localhost mysql-5.6.36]# rm -rf /etc/my.cnf              #刪除原有配置文件
[root@localhost mysql-5.6.36]# cp support-files/my-default.cnf /etc/my.cnf     
#復(fù)制源碼包中的配置文件到/etc/下

8、初始化數(shù)據(jù)庫(kù)(若數(shù)據(jù)庫(kù)初始化時(shí)配置錯(cuò)誤的話,將mysql安裝目錄中的data目錄刪掉后重新初始化即可):


[root@localhost mysql-5.6.36]# /usr/local/mysql/scripts/mysql_install_db --user=mysql 
--basedir=/usr/local/mysql --datadir=/usr/local/mysql/data 

9、設(shè)置環(huán)境變量(為了方便在任何目錄下使用mysql命令):


[root@localhost mysql-5.6.36]# echo "PATH=$PATH:/usr/local/mysql/bin" >> /etc/profile
[root@localhost mysql-5.6.36]# .  /etc/profile             #立即生效

10、添加系統(tǒng)服務(wù)(兩種方法,看完這一塊,再選擇其中之一即可):

1)、如果希望添加mysqld系統(tǒng)服務(wù),以便通過(guò)systemctl 進(jìn)行管理,可以直接使用源碼包中提供的服務(wù)腳本,如下:


[root@localhost mysql-5.6.36]# cp support-files/mysql.server /usr/local/mysql/bin/mysqld.sh   
#復(fù)制到安裝目錄中
[root@localhost mysql-5.6.36]# chmod +x /usr/local/mysql/bin/mysqld.sh         
#賦予執(zhí)行權(quán)限

2)、創(chuàng)建mysql系統(tǒng)服務(wù)的配置文件/usr/lib/systemd/system/mysqld.service,將其添加為mysqld系統(tǒng)服務(wù):
基于centos7搭建MySQL數(shù)據(jù)庫(kù)

上面的配置文件純手打,編寫(xiě)完以后,保存退出后,即可使用systemctl工具來(lái)控制mysql數(shù)據(jù)庫(kù)服務(wù)了。

方法二:

若嫌編寫(xiě)配置文件麻煩,可以換另一種方法:

當(dāng)對(duì)/usr/local/mysql/bin/mysqld.sh 賦予執(zhí)行權(quán)限后,繼續(xù)以下操作:

[root@localhost mysql-5.6.36]# cp /usr/local/mysql/bin/mysqld.sh /etc/init.d/mysqld
[root@localhost mysql-5.6.36]# vim /etc/init.d/mysqld

基于centos7搭建MySQL數(shù)據(jù)庫(kù)

修改后,保存退出。繼續(xù)執(zhí)行如下命令:


[root@localhost mysql-5.6.36]# chkconfig --add mysqld            #添加為系統(tǒng)服務(wù)

以上便是兩種添加系統(tǒng)服務(wù)的方法,二選一即可,只是方法二無(wú)法使用systemctl enable mysqld命令來(lái)設(shè)置開(kāi)機(jī)自動(dòng)啟動(dòng)。

11、啟動(dòng)服務(wù)并登錄到mysql服務(wù)器


[root@localhost mysql-5.6.36]# systemctl start mysqld                #啟動(dòng)服務(wù)
[root@localhost mysql-5.6.36]# systemctl status mysqld             #查看服務(wù)狀態(tài)是否正常
[root@localhost mysql-5.6.36]# mysql -u root              #使用root用戶登錄到mysql數(shù)據(jù)庫(kù)

需要注意的是,此root賬號(hào)與系統(tǒng)root賬號(hào)沒(méi)有半毛錢(qián)關(guān)系,只是湊巧mysql的管理員賬號(hào)也是root。初次安裝沒(méi)有密碼。可以使用下面命令來(lái)進(jìn)行配置密碼:


[root@localhost /]# mysqladmin -u root password                #為用戶root設(shè)置密碼
New password:                 #輸入密碼
Confirm new password:              #再次確認(rèn)

如果用戶有密碼,想要對(duì)密碼進(jìn)行更改,那么,要使用如下命令:


[root@localhost /]# mysqladmin -u root -p password            #更改密碼
Enter password:                                 #輸入舊密碼
New password:              #輸入新密碼
Confirm new password:                 #再次確認(rèn)

在用戶沒(méi)有密碼的情況下,使用以下命令來(lái)登錄到mysql數(shù)據(jù)庫(kù):


[root@localhost mysql-5.6.36]# mysql -u root 

若用戶有密碼,則需要加 -p選項(xiàng):


[root@localhost /]# mysql -u root -p

登錄到mysql服務(wù)器后,即可執(zhí)行SQL語(yǔ)句,每條mysql操作語(yǔ)句以分號(hào)“;”結(jié)尾,若沒(méi)有輸入分號(hào)便按了回車(chē)鍵,則相當(dāng)于換行。一切命令不區(qū)分大小寫(xiě),使用status可以查看當(dāng)前數(shù)據(jù)庫(kù)服務(wù)的基本信息,使用exit可以退出mysql命令工具。
二、數(shù)據(jù)庫(kù)用戶授權(quán)及簡(jiǎn)單操作(增刪改查):

1、授予權(quán)限:


grant  權(quán)限列表  on  庫(kù)名.表名   to  用戶名@來(lái)源地址  [ identified  by  '密碼']

使用grant語(yǔ)句,需要注意以下幾點(diǎn):

基于centos7搭建MySQL數(shù)據(jù)庫(kù)

grant用法示例:


mysql> grant select on test.* to 'zhangsan'@'localhost' identified by '123456' ;     
#創(chuàng)建一個(gè)用戶名為張三,密碼為123456,用本地主機(jī)登錄,對(duì)test庫(kù)中所有的表可以執(zhí)行select語(yǔ)句。

2、查看zhangsan使用本地主機(jī)登錄的權(quán)限:


mysql> show grants for 'zhangsan'@'localhost';

3、撤銷(xiāo)權(quán)限:


mysql> revoke all on test.* from 'zhangsan'@'localhost';
需要注意的是,賦予權(quán)限時(shí)是怎么指定庫(kù)和表的,撤銷(xiāo)時(shí)必須以同樣的方式指定,若賦予權(quán)限時(shí)使用test.user(test庫(kù)中的user表),那么,撤銷(xiāo)權(quán)限時(shí)若使用test.*將會(huì)報(bào)錯(cuò)。

4、查看當(dāng)前服務(wù)器中的所有庫(kù):


mysql> show databases;

5、使用use語(yǔ)句切換庫(kù),并且查看庫(kù)中的表:


mysql> use mysql;                     #切換至mysql庫(kù)

mysql> show tables;              #查看庫(kù)中的所有表

6、查看表的結(jié)構(gòu):


mysql> use mysql;                        #切換至mysql庫(kù)

mysql> describe user;            #查看表的結(jié)構(gòu)

7、創(chuàng)建新的庫(kù):


mysql> create database test2;                  #創(chuàng)建一個(gè)名為test2的庫(kù)。

8、創(chuàng)建新的表:

mysql> create table 表名 (列名1 類(lèi)型,列名2 類(lèi)型,.... ,primary key (主鍵名));

示例,創(chuàng)建一個(gè)簡(jiǎn)單的員工信息表:


mysql> create table yuangongxinxi (xingming char(16) not null, 
xingbie char(4)), nianling int, gonghao int, primary key (gonghao));
#新建表名為員工信息。包含的列有姓名、年齡、工號(hào)等,并將工號(hào)設(shè)置為主鍵。

9、向剛剛的表中插入一條員工信息:


mysql> insert into yuangonxinxi(xingming,xingbie,nianling,gonghao) values ('zhangsan','nan','25','100');

10、查詢(xún)表中的數(shù)據(jù)(也可加where語(yǔ)句來(lái)指定查詢(xún)特定的行,或使用列名而不用星號(hào)來(lái)查詢(xún)特定的列):


mysql> select * from yuangonxinxi;

11、修改數(shù)據(jù)記錄:


mysql> update yuangonxinxi set nianling='30' where xingming='zhangsan';              #修改zhagnsan的年齡為30

12、刪除數(shù)據(jù)記錄:


mysql> delete from yuangonxinxi where xingming='zhangsan';                      #刪除zhangsan的數(shù)據(jù)記錄

13、刪除剛剛創(chuàng)建的數(shù)據(jù)表:


mysql>  drop table test2.yuangongxinxi;

14、、刪除剛才創(chuàng)建的庫(kù):


mysql> drop database test2;

————感謝閱讀~

向AI問(wèn)一下細(xì)節(jié)

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

AI