Centos7 的 yum 源中默认是没有 mysql 的。要想使用 yum 安装 mysql 5.6 ,需要先下载安装 mysql 的 repo 源。
1、下载 mysql 的 repo 源
# wget http://repo.mysql.com/mysql-community-release-el7-5.noarch.rpm
2、安装 mysql-community-release-el7-5.noarch.rpm 包
# sudo rpm -ivh mysql-community-release-el7-5.noarch.rpm
安装这个包后,会获得两个mysql的yum repo源:/etc/yum.repos.d/mysql-community.repo,/etc/yum.repos.d/mysql-community-source.repo。
3、安装 mysql
# sudo yum install mysql-server
4、重置 mysql 密码
# mysql -u root
登录时有可能报这样的错:ERROR 2002 (HY000): Can‘t connect to local MySQL server through socket ‘/var/lib/mysql/mysql.sock‘ (2),原因是/var/lib/mysql的访问权限问题。下面的命令把/var/lib/mysql的拥有者改为当前用户:
# sudo chown -R openscanner:openscanner /var/lib/mysql
然后重启 mysql 服务:
# service mysqld restart
然后邓璐重置密码:
# mysql -u root
mysql > use mysql
mysql > update user set password=password('123456') where user = 'root';
mysql > exit;
5、开放3306端口
编辑 iptables 文件,如果没有找到,则需要安装 iptables,因为 centos7 默认使用的是 firewall 作为防火墙。
5.1 关闭 firewall:
停止 firewall
# systemctl stop firewalld.service
禁止 firewall 开机启动
# systemctl disable firewalld.service
5.2 安装 iptables 防火墙,安装完成之后在 /etc/sysconfig 目录下有 iptables 文件
安装
# yum install iptables-services
编辑防火墙配置文件
# vi /etc/sysconfig/iptables
添加开放端口3306的信息
-A INPUT -p tcp -m state --state NEW -m tcp --dport 3306 -j ACCEPT
保存退出,重启防火墙
# systemctl restart iptables.service
设置防火墙开机启动
# systemctl enable iptables.service
mysql 数据库安装完成,可以使用客户端远程测试连接。
备注:
如果客户端连接数据库报错:类似
1130: host is not allowed to connect to mysql server
说明 mysql 数据库不允许从远程登录,只能在 localhost,添加 ‘%’ 即可。
# mysql -u root -p
登录mysql
mysql > use mysql;
mysql > update user set host = '%' where user = 'root';
修改mysql可以本地访问
update user set host = 'localhost' where user = 'root' and host = '127.0.0.1';
如果报错,类似
ERROR 1062 (23000): Duplicate entry '%-root' for key 'PRIMARY'
然后产看数据库的 host 信息,
mysql > select host form user where user = 'root';
+-----------------------+
| host |
+-----------------------+
| % |
| 127.0.0.1 |
| localhost.localdomain |
+-----------------------+
3 rows in set (0.00 sec)
host 已经有了 % 这个值。直接运行最后一个命令:
mysql > flush privileges;
客户端连接数据库,成功!
6、修改 mysql 数据库字符集
查看数据库字符集
mysql > show variables like '%character%';
结果显示:其中字符集 为 latin1。
+--------------------------+----------------------------+
| Variable_name | Value |
+--------------------------+----------------------------+
| character_set_client | utf8 |
| character_set_connection | utf8 |
| character_set_database | latin1 |
| character_set_filesystem | binary |
| character_set_results | utf8 |
| character_set_server | latin1 |
| character_set_system | utf8 |
| character_sets_dir | /usr/share/mysql/charsets/ |
+--------------------------+----------------------------+
修改 my.cnf 文件,注意:修改之前,备份 my.cnf
# vi /etc/my.cnf
在 [mysqld] 下添加代码
socket = /mysqldata/mysql/mysql.sock
**character-set-server=utf8**
7、设置 mysql 数据库表不区分大小写
在 [mysqld] 下添加代码
lower_case_table_names=1
8、跳过数据库密码登陆,在 /etc/my.cnf中增加
[mysqld]
skip-grant-tables