MySQL數據庫系統mysql
MySQL安裝(源碼包安裝)linux
卸載系統中已存在的MySQL的rpm版軟件c++
安裝前工做sql
建立mysql程序用戶數據庫
useradd-s/sbin/nologin緩存
安裝工具bash
yuminstall-yncurses-develcmakemakegccide
gcc-c++工具
1.配置spa
cmake\
-DCMAKE_INSTALL_PREFIX=/usr/local/mysql\
-DMYSQL_DATADIR=/home/mysql/\
-DMYSQL_UNIX_ADDR=/home/mysql/mysql.sock\
-DWITH_MYISAM_STORAGE_ENGINE=1\
-DWITH_INNOBASE_STORAGE_ENGINE=1\
-DWITH_ARCHIVE_STORAGE_ENGINE=1\
-DWITH_BLACKHOLE_STORAGE_ENGINE=1\
-DENABLED_LOCAL_INFILE=1\
-DDEFAULT_CHARSET=utf8\
-DDEFAULT_COLLATION=utf8_general_ci\
-DEXTRA_CHARSETS=all\
-DWITH_SSL=system\
-DMYSQL_TCP_PORT=3306\
-DENABLE_DOWNLOADS=1\
-DWITH_SSL=bundled
若是在配置的時候報錯,以後從新配置的時候須要清除緩存文件,在接着安裝
rm-fCMakeCache.txt
2.make;makeinstall
mysql主配置文件
/etc/my.cnf
在源碼包所在目錄的support-files目錄中有配置文件的模板,能夠拷過去直接使用
cpsupport-files/my-medium.cnf/etc/my.cnf
更改安裝目錄權限,使mysql程序有權限管理
chown-Rmysql.mysql/usr/local/mysql
更改PASH變量,方便管理mysql
exportPATH=$PATH:/usr/local/mysql/bin/
(要永久生效能夠寫在~/.bash_profile等配置文件中)
將mysql加爲系統程序,方便管理
在源碼包所在目錄的support-files目錄中有mysql的服務腳本文件mysql.server
cpsupport-files/mysql.server/etc/init.d/mysqld
chkconfig--addmysqld
chkconfig--level35mysqldon
初始化mysql
/usr/local/mysql/scripts/mysql_install_db\
--user=mysql\
--ldata=/var/lib/mysql\
--basedir=/usr/local/mysql\
--datadir=/home/mysql
(初始化腳本mysql_install_db位於安裝目錄的scripts文件夾中,--user指定用戶,--ldata指定連接文件,--basedi指定基本目錄,--datadir指定數據目錄)
由於配置時指定了-DMYSQL_UNIX_ADDR=/home/mysql/mysql.sock,可實際此文件在/var/lib/mysql/mysql.sock目錄下,因此我要給它設置一個連接
ln-s/var/lib/mysql/mysql.sock/home/mysql/mysql.sock
編輯服務腳本文件/etc/init.d/mysqld文件,指定安裝的目錄和數據文件保存文件的目錄
vi/etc/init.d/mysqld
basedir=/usr/local/mysql
datadir=/home/mysql
啓動mysql程序
servicemysqldstart
查看程序是否啓動
netstat-anptu|grepmysqd
以上步驟作完後,mysql的安裝和初始化作好了,就可使用了
登陸數據庫
mysql-uroot
-p:使用密碼
-h:登陸遠程數據庫
修改mysql數據庫root密碼
mysqladmin-uroot-ppassword'新密碼'需輸舊密碼
數據庫的提示符爲mysql>,命令大小寫不敏感;且每一個命令都以分號;號結尾,若沒以分號結尾,將表明命令沒有結束,只是強制換行而已,等同於linux命令行中的\鍵。
下面是mysql環境下的一些命令
增長命令
CREATEDATABASEbenet;新建benet數據庫
usebenet;進入benet數據庫
CREATETABLEusers(user_nameCHAR(16)NOTNULL,user_passwdCHAR(48)DEFAULT'',PRIMARYKEY(user_name));建立表名爲users,
user_name表示第1行名稱,「char(16)」表示類型爲字符串,最大爲16數值,「notnull」表示值不能爲空;user_passwd」表示第2行,DEFAULT''表示能夠爲空primarykey(user_name)表示主鍵名
INSERTINTOusers(user_name,user_passwd)VALUES('zhangsan',PASSWORD('123456'));在users表中插入一條內容,若是插入的每一個字段都包含內容,(user_name,user_passwd)能夠省略
刪除命令
DELETEFROMusersWHEREuser_name='lisi';
刪除user表中lisi的內容
DROPFROMusers;刪除user表中全部內容
DROPTABLEusers;刪除users表
DROPDATABASEbenet;刪除benet數據庫
更改命令
UPDATEmysql.userSETpassword=PASSWORD('123456')WHEREuser='root';更改root的password值
查看命令
showdatabases;查看全部數據庫
usetest;進入test數據庫
showtables;查看數據中的表
describeuser;查看user表的信息
select*fromuser;查看user表裏的內容
selectuserfromuser;查看user表裏的user這個用戶字段裏有哪些用戶
SELECTuser,host,passwordFROMmysql.userWHEREuser='';查看mysql庫中user表中user,host,password中user字段爲空的行
用戶受權
GRANTselectONauth.*TO'tom'@'localhost'IDENTIFIEDBY'密碼'新建tom用戶,對其受權只能查詢以auth開頭的全部表,或auth中的全部表,且只能在localhost登錄,能夠爲IP
flushprivileges;刷新受權信息
備份與恢復
備份和恢復是在bash環境下執行,是linux命令,而不是在mysql環境下
備份
mysqldump-uroot-p--opt--all-databases>all-data.sql
備份全部數據庫
mysqldump-uroot-p--databasebenet>benet.sql
備份benet數據庫
還原
mysql-uroot-p<all-data.sql
all-data.sql爲備份的文件,若是隻是某個數據庫的備份,能夠在-p後面跟上數據庫名