1、MySQL服務基礎
2、MySQL的編譯安裝
3、訪問MySQL數據庫
4、使用MySQL數據庫mysql
MySQL是一個真正的多線程,多用戶的SQL數據庫服務,憑藉其高性能、高可靠和易於使用的特性,成爲服務器領域中最受歡迎的開源數據庫系統。sql
MySQL項目在08年之前是由MySQL AB公司進行開發、發佈和支持,以後歷經Sun公司收購MySQL AB公司,Oracle公司收購Sun公司的過程,目前MySQL項目由Oracle公司負責運營和維護。數據庫
爲了確保MySQL數據庫功能的完整性、可定製性,我採用了源代碼編譯安裝的方式安裝MySQL數據庫系統,MySQL5.X系列版本的使用最爲普遍,該版本的穩定性、兼容性都不錯,下載源碼包的官方站點爲 https://www.mysql.com 。vim
下載安裝所需軟件包:https://pan.baidu.com/s/1vMP72gT6oELBb5eKNTbhNw
提取碼:gxtf
centos
[root@centos01 ~]# mount /dev/cdrom /mnt/ <!--掛載系統光盤--> [root@centos01 ~]# groupadd mysql <!--建立管理mysql的組--> [root@centos01 ~]# useradd -M -s /sbin/nologin mysql -g mysql <!--建立管理mySQL數據庫的用戶 --> [root@centos01 ~]# rm -rf /etc/yum.repos.d/CentOS-* <!--刪除yum源裏全部以Centos開頭的文件--> [root@centos01 ~]# yum -y install ncurses-devel <!--安裝mysql依賴程序ncurses-devel-->
[root@centos01 ~]# umount /mnt/ <!--卸載光盤,切換Linux光盤--> [root@centos01 ~]# mount /dev/cdrom /mnt/ <!--掛載Linux光盤--> [root@centos01 ~]# mount /dev/cdrom /mnt/ <!--解壓縮編譯mysql工具cmake--> [root@centos01 ~]# cd /usr/src/cmake-2.8.6/ <!--進入cmake目錄--> [root@centos01 cmake-2.8.6]# ./configure <!--配置cmake--> [root@centos01 cmake-2.8.6]# gmake && gmake install <!--編譯安裝cmake程序-->
[root@centos01 ~]# tar zxvf /mnt/mysql-5.5.22.tar.gz -C /usr/src/ <!--解壓mysql程序--> [root@centos01 ~]# cd /usr/src/mysql-5.5.22/ <!--進入mysql目錄--> [root@centos01 mysql-5.5.22]#cmake -DCMAKE_INSTALL_PREFIX=/usr/local/mysql -DDEFAULT_CHARSET=utf8 -DDEFAULT_COLLATION=utf8_general_ci -DWITH_EXTRA_CHARSETS=all -DSYSCONFDIR=/etc <!--配置mysql程序--> [root@centos01 mysql-5.5.22]# make && make install <!--編譯安裝mysql-->
上述配置命令中,各選項的含義以下:安全
- -DCMAKE_INSTALL_PREFIX:指定MyQSL數據庫程序安裝到某目錄下,如目錄/usr/local/mysql。
- -DSYSCONFDIR:指定初始化參數文件目錄。
- -DDEFAULT_CHARSET:指定默認使用的字符集編碼,如utf-8。
- -DDEFAULT_COLLATION:指定默認使用的字符集校對規則,utf8_general_ci是適用於utf-8字符集的通用規則。
- -DWITH_EXTRA_CHARSETS:指定額外支持的其餘字符集編碼。
[root@centos01 ~]# chown -R mysql:mysql /usr/local/mysql/ <!--設置安裝目錄數據的全部者--> [root@centos01 ~]# cd /usr/src/mysql-5.5.22/ <!--進入mysql目錄--> [root@centos01 mysql-5.5.22]# cp support-files/my-medium.cnf /etc/my.cnf <!--生成mysql服務配置文件--> cp:是否覆蓋"/etc/my.cnf"? y <!--輸入y--> [root@centos01 ~]# vim /etc/profile <!--設置環境變量--> # /etc/profile PATH="$PATH:/usr/local/mysql/bin/" [root@centos01 ~]# source /etc/profile <!--當即生效--> [root@centos01 mysql-5.5.22]# cp support-files/mysql.server /etc/init.d/mysqld <!--生成mysql系統服務控制文件--> [root@centos01 mysql-5.5.22]# chmod +x /etc/init.d/mysqld <!--設置服務的執行權限--> [root@centos01 ~]# chkconfig --add mysqld <!--添加系統服務--> [root@centos01 ~]# chkconfig --level 35 mysqld on <!--添加系統服務--> [root@centos01 ~]#/usr/local/mysql/scripts/mysql_install_db --user=mysql --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data <!--初始化管理數據的帳戶數據庫位置和數據位置-->
[root@centos01 ~]# systemctl enable mysqld <!--設置開機自動啓動--> [root@centos01 ~]# systemctl start mysqld <!--啓動MySQL服務--> [root@centos01 ~]# netstat -anptu | grep 3306 <!--監聽mysql服務是否啓動-->
MySQL數據庫系統是一個典型的C/S(客戶端/服務器)架構的應用。要訪問MySQL數據庫須要使用專門的客戶端軟件。在Linux系統中,最簡單、易用的MySQL客戶端軟件是其自帶的mysql命令工具。服務器
通過安裝後的初始化過程,MySQL數據庫的默認管理員用戶名爲root,密碼爲空。
登陸成功後將會進入提示符爲「mysql>」的數據庫操做環境,用戶能夠輸入各類操做語句對數據庫進行管理。每條MySQL操做語句以分號「;」表示結束,輸入時能夠不區分大小寫。多線程
[root@centos01 ~]# mysql -u root -p <!--「-u」選項用於指定認證用戶, 「-p」選項來進行密碼校驗,默認root密碼爲空,回車鍵便可登陸--> New password: <!--Enter鍵--> mysql> exit <!--斷開鏈接--> [root@centos01 ~]# mysqladmin -u root password <!--給數據庫root用戶設置密碼--> New password: <!--輸入密碼--> Confirm new password: <!--確認密碼--> [root@centos01 ~]# mysql -u root -p <!--root用戶鏈接數據庫--> Enter password: <!--輸入密碼--> mysql> quit <!--斷開數據庫鏈接-->
mysql> show databases; <!--查看數據庫--> mysql> use myqsl; <!--切換數據庫mysql庫中--> mysql> show tables; <!--查看mysql庫中的表--> mysql> describe user; <!--查看錶的結構--> mysql> create database bdqn; <!--新建數據庫名字是bdqn--> mysql> drop database bdqn; <!--刪除數據庫bdqn--> mysql> create table stuinfo(姓名 char(16),性別 char(10),年齡 char(10),聯繫電話 char(11),Email地址 char(20)); <!--建立表,表名字是stuinfo,第一列名字是姓名,第二列名字爲性別,第三列名字爲年齡,第四列名字爲聯繫電話,第五列名字爲Email地址--> mysql> drop table stuinfo; <!--刪除表stuinfo--> mysql> insert into stuinfo (姓名,性別,年齡,聯繫電話,Email地址) value ('李焱鑫',’男’,’20’,'18232013151',’2807489749@qq.com’); !--stuinfo表插入數據--> mysql> insert into stuinfo value ('吳大狼','男','19','11111111111','11111111@qq.com'); <!--第二種方式插入數據--> mysql> insert into stuinfo value ('張航','男','15','22222222222','22222222@qq.com'); <!--第二種方式插入數據--> mysql> insert into stuinfo value ('曾憲猴','男','8','33333333333','33333333@qq.com'); <!--第二種方式插入數據--> mysql> select * from stuinfo; <!--查看數據庫表的全部數據--> +-----------+--------+--------+--------------+-------------------+ | 姓名 | 性別 | 年齡 | 聯繫電話 | Email地址 | +-----------+--------+--------+--------------+-------------------+ | 李焱鑫 | 男 | 20 | 18232013151 | 2807489749@qq.com | | 吳大狼 | 男 | 19 | 11111111111 | 11111111@qq.com | | 張航 | 男 | 15 | 22222222222 | 22222222@qq.com | | 曾憲猴 | 男 | 8 | 33333333333 | 33333333@qq.com | +-----------+--------+--------+--------------+-------------------+ mysql> select * from stuinfo where 姓名='李焱鑫'; <!--使用條件查詢知足條件顯示 --> +-----------+--------+--------+--------------+-------------------+ | 姓名 | 性別 | 年齡 | 聯繫電話 | Email地址 | +-----------+--------+--------+--------------+-------------------+ | 李焱鑫 | 男 | 20 | 18232013151 | 2807489749@qq.com | +-----------+--------+--------+--------------+-------------------+ mysql> update stuinfo set 姓名='LiYanXin' where 姓名='李焱鑫'; <!--修改中文名字爲英文--> mysql> delete from stuinfo where 姓名='LiYanXin'; <!--刪除LiYanXin記錄-->
MySQL數據庫的root用戶帳號擁有對全部庫、表的所有權限,頻繁使用root帳號會給數據庫服務器帶來必定的安全風險。一般在實際工做中會創建一些低權限的用戶,只負責一部分庫、表的管理和維護操做,甚至能夠對查詢、修改、刪除記錄等各類操做作進一步的細化限制,從而將數據庫的風險降至最低。架構
GRANT語句:專門用來設置數據庫用戶的訪問權限。當指定的用戶名不存在時,GRANT語句將會建立新的用戶,不然,GRANT語句用於修改用戶信息。ide
語句格式以下:
GRANT 權限列表 ON 庫名.表名 TO 用戶名@來源地址 [ IDENTIFIED BY '密碼' ]使用GRANT語句時,須要注意的事項以下:
- 權限列表:用於列出受權使用的各類數據庫操做,以逗號進行分隔,Select 容許查詢;Insert 插入數據;Update 更新數據;Delete 刪除數據;All 給全部權限,增長刪改查;使用「all」表示全部權限,可受權執行任何操做。
- 庫名.表名:用於指定受權操做的庫和表的名稱,其中可使用通配符「」。「auth.」表示受權操做的對象爲auth庫中的全部表。
- 用戶名@來源地址:用於指定用戶名稱和容許訪問的客戶機地址,即誰能鏈接、能從哪裏鏈接。來源地址能夠是域名、IP地址,還可使用「%」通配符,表示某個區域或網段內的全部地址。
- IDENTIFIED BY:用於設置用戶鏈接數據庫時所使用的密碼字符串。在新建用戶時,若省略「IDENTIFIED BY」部分,則用戶的密碼將爲空。
mysql> grant all on bdqn.* to 'rundb'@'localhost' identified by 'pwd@123'; <!--受權用戶rundb對bdqn數據庫中全部表有徹底控制權限--> mysql> show grants for 'rundb'@'localhost'; <!--查看受權的權限--> mysql> revoke all on bdqn.stuinfo from 'rundb'@'localhost'; <!--取消受權-->
—————— 本文至此結束,感謝閱讀 ——————