MySQL安裝與基本配置
一、簡介
SQL語言
DDL:表、視圖、索引、觸發器操作等。CREATE/ALTER/DROP語句
DML:數據操作。SELECT/INSERT/UPDATE/DELETE
DCL:權限設置。GRANT/REVOKE
數據庫訪問
不同的語言使用不同的數據庫訪問技術
C#使用ADO.NET,JAVA使用JDBC等
版本
Community Edition:免費、自由下載,無技術支持
Enterprise:收費、不能下載,有技術支持
Alpha:開發階段
Beta:開發完成,未測試
Gamma:已發行一段時間的測試版
Generally Available(GA):穩定版
工具
MySQL Community Server:客戶端和服務器整合起來的核心包
MySQL Cluster:提供Mysql集群功能的程序包
MySQL Fabric:為高可用性和分片管理提供了一個框架
MySQL Utilities:提供維護和管理的實用工具
MySQL Workbench:可視化編輯工具
MySQL Proxy:MySQL中間件,代理接收發往MySQL數據庫的請求,將需要求路由至不同的後端主機上去
MySQL Connectors:MySQL的連接器,程序連接MySQL的驅動
MySQL Yum Repository:下載MySQL的YUM源
MySQL APT Repository:APT源
RPM包
MySQL-client:客戶端連接工具,GUI工具有navicat、phpmyadmin等
MySQL-server:服務器包
MySQL-devel:庫和包含文件
MySQL-shared:某些語言和應用程序需要動態裝載的共享庫
MySQL-test:測試組件
MySQL-embedded:嵌入式
MySQL-bundle:整合包
相關文件
/etc/my.cnf:配置文件
/usr/share/doc/MySQL-server-5.6.26/my-default.cnf:參考配置文件
/usr/share/mysql/my-default.cnf:同上
/usr/bin:客戶端程序和腳本
/usr/sbin mysqld:服務器
/var/lib/mysql:日志文件,數據庫
/usr/lib/mysql:數據庫
/usr/share/doc/packages:文檔
/usr/include/mysql:包含(頭)文件
/usr/share/mysql:錯誤消息和字符集文件
/usr/share/sql-bench:基准程序
二、安裝
環境:CentOS 6.7 x86、MySQL 5.6
報錯,刪除mysql-libs包
[root@CentOS MySQL]# rpm -qa | grep -i mysql
mysql-libs-5.1.73-5.el6_6.i686
[root@CentOS MySQL]# yum remove mysql-libs-5.1.73-5.el6_6.i686
RPM
[root@CentOS MySQL]# rpm -ivh MySQL-server-5.6.26-1.el6.i686.rpm
[root@CentOS MySQL]# rpm -ivh MySQL-client-5.6.26-1.el6.i686.rpm
YUM
[root@CentOS ~]# yum install mysql-server mysql-client
防火牆
[root@CentOS ~]# iptables -A INPUT -p tcp -m state --state NEW -m tcp --dport 3306 -j ACCEPT
[root@CentOS ~]# service iptables save
[root@CentOS ~]# service iptables restart
配置
5.1版本root無密碼;5.6安裝完成後,root生成隨機密碼在/root/.mysql_secret
5.1有配置文件;5.6無配置文件,需從/usr/share/mysql/my-default.cnf復制到/etc/my.cnf
5.1服務名mysqld,5.6為mysql
開啟服務
[root@CentOS ~]# service mysql start
查看登錄數據庫賬號root的密碼
[root@CentOS ~]# cat .mysql_secret
# The random password set for the root user at Tue Sep 8 11:26:39 2015 (local time): 4VZTzey0LML2N7e1
初始化設置
[root@CentOS ~]# /usr/bin/mysql_secure_installation --user=mysql
#輸入root的密碼
Enter current password for root (enter for none):
#是否修改root的密碼
Change the root password? [Y/n] y
New password:
Re-enter new password:
Password updated successfully!
Reloading privilege tables..
... Success!
#刪除匿名用戶
Remove anonymous users? [Y/n] y
... Success!
#禁止root遠程登錄
Disallow root login remotely? [Y/n] y
... Success!
#刪除測試數據庫
Remove test database and access to it? [Y/n] y
- Dropping test database...
... Success!
- Removing privileges on test database...
... Success!
#重新加載權限表
Reload privilege tables now? [Y/n] y
... Success!
三、連接數據庫
參數:
-h:主機名或IP
-P:端口號,默認3306
-u:用戶名
-p:密碼
-e:指定SQL語句
[root@CentOS ~]# mysql -u root -p
Enter password:
[root@CentOS ~]# mysql -u root -p db01#連接db01庫
[root@CentOS ~]# mysql -h 192.168.41.135 -u root -p#遠程連接
四、創建遠程用戶
user1用戶擁有所有權限,%表示任意主機可登錄
mysql> create user 'user1'@'%' identified by '123456';
mysql> grant all privileges on *.* to 'user1'@'%';
五、遷移data目錄
data目錄應獨立分區
關閉服務
[root@CentOS ~]# service mysql stop
移動目錄
[root@CentOS ~]# mv /var/lib/mysql/ /data/
配置文件
[root@CentOS ~]# cp -a /usr/share/mysql/my-default.cnf /etc/my.cnf
[root@CentOS ~]# vim /etc/my.cnf
datadir=/data/mysql
socket=/data/mysql/mysql.sock
[mysql]
socket=/data/mysql/mysql.sock
#sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES
啟動服務
[root@CentOS ~]# service mysql start
SELinux報錯解決方法(mv命令保留權限,所以沒報錯)
[root@CentOS ~]# chcon -R -t mysqld_db_t /data//mysql