MySQL简介
MySQL是一个关系型数据库管理系统,由瑞典MySQL AB公司开发,目前属于Oracle旗下产品。
因为MySQL使用数据库访问的标准化语言 —— SQL语言,且它具有体积小、速度快、开源等特点,所以一般中小型网站的开发都选择MySQL作为网站数据库。
MySQL安装
- 根据Linxu发行版下载MySQL的yum源,也可以直接通过wget来下载。
# CentOS6或Red Hat6
wget https://dev.mysql.com/get/mysql57-community-release-el6-11.noarch.rpm
- 安装MySQL的yum源。
# 方式一:通过rpm
rpm -Uvh mysql57-community-release-el6-11.noarch.rpm
# 方式二:通过yum localinstall
yum -y localinstall mysql57-community-release-el6-11.noarch.rpm
- 检查MySQL的yum源是否安装成功。
yum repolist enabled | grep "mysql.*-community.*"
- 利用yum来安装MySQL,并随后检测是否安装成功。
# 安装MySQL
yum -y install mysql-community-server
# 是否安装成功
rpm -qa | grep mysql
- 修改MySQL的默认配置文件
/etc/my.cnf
为如下内容。
[mysqld]
explicit_defaults_for_timestamp=true
datadir=/var/lib/mysql/
socket=/var/lib/mysql/mysql.sock
user=mysql
symbolic-links=0
default-storage-engine=InnoDB
[mysqld_safe]
log-error=/var/log/mysqld.log
pid-file=/var/run/mysqld/mysqld.pid
初始化MySQL:
mysqld --initialize --user=mysql
。MySQL的启动、停止、重启、自启动等操作。
# CentOS7及其以上
systemctl start|stop|restart|enable mysqld
# CentOS7以下
service mysqld start|stop|restart|reload
chkconfig mysqld on
MySQL账号
默认root账号
- MySQL5.7初始化完,默认会生成账号root,其临时密码位于错误日志
/var/log/mysqld.log
中。
A temporary password is generated for root@localhost: #dol!(gpM7pg
mysql -u root -p
并输入上面的临时密码,登入mysql。修改账号root的密码。
mysql > set password for root@localhost=password('新密码');
-
MySQL中的每个账号都是由user和host组成,格式为
user@host
,user表示用户名,host表示此用户能访问MySQL的ip限制。默认生成的root账号为
root@localhost
。于是,只能在ip为127.0.0.1
(即本地)使用root访问MySQL。若host为
%
,表示允许任何ip访问。
创建账号
- 创建一个日常使用的可本地或远程登录MySQL的账号。
# 创建账号daking
mysql > create user 'daking'@'%' identified by 'daking';
# 给daking赋予权限
mysql > grant all privileges on *.* to 'daking'@'localhost' identified by 'daking';
mysql > grant all privileges on *.* to 'daking'@'%' identified by 'daking';
# 刷新MySQL权限
mysql > flush privileges;
# 给daking设置密码
mysql > set password for daking@localhost=password('本地登录的密码');
mysql > set password for daking@'%'=password('远程登录的密码');
其他
- 查看MySQL的所有账号。
mysql > select user,host from mysql.user;
+-----------+-----------+
| user | host |
+-----------+-----------+
| daking | % |
| mysql.sys | localhost |
| daking | localhost |
| root | localhost |
+-----------+-----------+
MySQL配置
防火墙配置
- 添加iptables的配置,并重启iptables。
-A INPUT -m state --state NEW -m tcp -p tcp --dport 3306 -j ACCEPT
默认存储引擎
在MySQL配置文件(如
/etc/my.cnf
)中的[mysqld]
节点下添加default-storage-engine=InnoDB
,并重启MySQL。查看MySQL的引擎。
mysql > show engines;
统一utf8字符集
- 修改MySQL的配置文件,如
/etc/my.cnf
。
[mysqld]
character_set_server=utf8
collation-server=utf8_general_ci
[client]
default-character-set=utf8
- 检测编码是否设置成功。
mysql > show variables like 'character%';