一、简介
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:整合包
相关文件
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源
二、安装
环境:CentOS 6.7 x86、MySQL 5.6
报错,删除mysql-libs包
[[email protected] MySQL]# rpm -qa | grep -i mysql mysql-libs-5.1.73-5.el6_6.i686 [[email protected] MySQL]# yum remove mysql-libs-5.1.73-5.el6_6.i686
RPM
[[email protected] MySQL]# rpm -ivh MySQL-server-5.6.26-1.el6.i686.rpm [[email protected] MySQL]# rpm -ivh MySQL-client-5.6.26-1.el6.i686.rpm
YUM
[[email protected] ~]# yum install mysql-server mysql-client
防火墙
iptables -A INPUT -p tcp -m state --state NEW -m tcp --dport 3306 -j ACCEPT service iptables save 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
开启服务
[[email protected] ~]# service mysql start
查看登录数据库账号root的密码
[[email protected] ~]# cat .mysql_secret # The random password set for the root user at Tue Sep 8 11:26:39 2015 (local time): 4VZTzey0LML2N7e1
初始化设置
[[email protected] ~]# /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语句
[[email protected] ~]# mysql -u root -p Enter password: [[email protected] ~]# mysql -u root -p db01#连接db01库 [[email protected] ~]# 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目录应独立分区
关闭服务
[[email protected] ~]# service mysql stop
移动目录
[[email protected] ~]# mv /var/lib/mysql/ /data/
配置文件
[[email protected] ~]# cp -a /usr/share/mysql/my-default.cnf /etc/my.cnf [[email protected] ~]# 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
启动服务
[[email protected] ~]# service mysql start
SELinux报错解决方法(mv命令保留权限,所以没报错)
[[email protected] ~]# chcon -R -t mysqld_db_t /data//mysql