一、CentOS7下安装MySQL数据库
CentOS7默认的安装包里面已经没有 MySQL-Server安装包了,远程镜像中也没有了。 默认的是MariaDB (MySQL的一个分支,开发这个分支的原因之一是:甲骨文公司收购了MySQL后,有将MySQL闭源的潜在风险,因此社区采用分支的方式来避开这个风险 参照百度。开发基本相似)。
参考文章:CentOS7 安装MySQL
http://www.centoscn.com/mysql/2016/0315/6844.html
这里主要是安装MySQL版的
一、安装前的准备:
1.检查是否已安装
# yum list installed | grep mysql
如果有则全部卸载
# yum -y remove mysql-libs.x86_64
下载 MySQL Yum Repository 地址: http://dev.mysql.com/get/mysql-community-release-el7-5.noarch.rpm
# wget http://dev.mysql.com/get/mysql-community-release-el7-5.noarch.rpm
如果提示-bash: wget: 未找到命令
,请先执行 yum install wget
安装 wget
加 MySQL Yum Repository 到你的系统 repository 列表中,执行:
# yum localinstall -y mysql-community-release-el7-5.noarch.rpm
2.验证是否安装成功
# yum repolist enabled | grep "mysql.*-community.*"
可以看到下面内:
MySQL 5.6 Community Server等
二、通过 Yum 来安装 MySQL
# yum install -y mysql-community-server
执行完成会提示“完毕!”。此时MySQL 安装完成,它包含了 mysql-community-server、mysql-community-client、mysql-community-common、mysql-community-libs 四个包
rpm -qi mysql-community-server.x86_64 0:5.6.24-3.el7
验证是否安装成功:whereis mysql 可以看到几个目录
三、启动和关闭 MySQL Server
# systemctl start mysqld
启动MySQL # systemctl start mysqld
查看MySQL状态 # systemctl status mysqld
停止MySQL # systemctl stop mysqld
测试MySQL是否成功:
mysql
可以进入 mysql 命令行界面
mysql>
则成功,本地可以访问了。
四、相关配置
1.防火墙,开放端口
远程访问 MySQL, 需开放默认端口号 3306.
使用 firewall-cmd(推荐)
firewall-cmd --permanent --zone=public --add-port=3306/tcp
firewall-cmd --permanent --zone=public --add-port=3306/udp
或使用其他方式开发端口(iptables等)
2.账户密码等设置
服务器启动后,可以执行
mysql_secure_installation;
此时输入 root 原始密码(初始化安装的话为空),接下来,为了安全,MySQL 会提示你重置 root 密码,移除其他用户账号,禁用 root 远程登录,移除 test 数据库,重新加载 privilege 表格等,你只需输入 y 继续执行即可。
3.远程访问设置
A.创建管理员账户
创建一个管理员用户 admin 账号 ,密码是 some_pass
CREATE USER 'admin'@'%' IDENTIFIED BY 'some_pass';
给这个用户授予所有的远程访问的权限。这个用户主要用于管理整个数据库、备份、还原等操作。
flush privileges; //使授权立刻生效
B. 创建普通用户并授权
示例(使用root用户登录):(123456是密码 可改,%代表任意ip都可访问,如果换成指定的ip则只允许指定的ip服务器访问)
mysql > use mysql;
mysql > grant all privileges on *.* to 'root'@'%' identified by '123456';
mysql > flush privileges;
4.开机启动
查看MySQL服务是否开机启动
# systemctl is-enabled mysql.service;echo $?
enabled
0
如果是 enabled 则说明是开机自动,如果不是,执行
chkconfig --levels 235 mysqld on
5.设置字符集
SHOW VARIABLES LIKE 'character%';
可以看到默认服务器的字符器是 latin1 ,对中文不友好。
修改 /etc/my.cnf
文件,添加字符集的设置
[mysqld]
character_set_server = utf8
[mysql]
default-character-set = utf8
6.其他问题
1045(28000)错误 用户登陆信息错误,在user表中找不到
可以进入 mysql 命令行界面 查找mysql数据库 usre表 user,host,password看password是否正确,删掉use用户位null或者空字符串的那一行。
flush privileges; //重启下权限
再尝试连接MySQL数据库。