CentOS7下安装MySQL并配置远程连接

一、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 > flushn 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数据库。
上一篇:正向与反向拓扑排序的区别(hdu 1285 确定比赛名次和hdu 4857 逃生)


下一篇:iOS 视图间的几种通信方式