Centos7下安装配置mysql
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
3.安装mysql
sudo yum install mysql-server
安装完成后,没有密码,需要重置密码。
4.重置密码
- 重置前先登陆
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
// openscanner为你电脑的用户名(这开始让我很尴尬,请参照参考地址)
如无效则执行:
chown -R mysql:mysql /var/lib/mysql
- 重启服务:
service mysqld restart
- 正式登入重置密码:
mysql -u root
直接回车登陆,不用输密码。进入mysql命令行,依次输入
mysql > use mysql;
mysql > update user set password=password('123456') where user='root';
mysql > flush privileges;
mysql > exit;
- 退出后再次重启服务,并用以下登陆,键入上面修改的密码:
mysql -u root -p
5.开放3306端口,让客户机可以连入:
sudo gedit /etc/sysconfig/iptables
- 添加以下保存:
-A INPUT -p tcp -m state --state NEW -m tcp --dport 3306 -j ACCEPT
- 重启防火墙:
sudo service iptables restart
>>>>>>>>以上参考地址
6.设置mysql开机启动:
// 设置自启
chkconfig mysqld on
// 检查是否开启
systemctl list-unit-files
7.设置mysql远程访问:
// 指定mysql表
mysql > use mysql;
// 设置权限
mysql > grant all privileges on *.* to 'root'@'%' identified by '123456' with grant option;
// 刷新
mysql> flush privileges;
8.解决中文乱码问题:
网上有很多方法,大致为修改/etc/my.cnf文件,在文件的[client]和[mysqld]下加入:default-character-set=utf8,但是我打开时只有[mysqld]具体参考:
参考:彻底解决mysql中文乱码的办法
我装的是5.6,根据修改后无法登陆mysql,因为/etc/my.cnf下只有[mysqld]。正确解决为:
- 先查看数据库的编码
mysql>show variables like ‘character_set_%’;
结果如下,看到有三个是latin1编码:
执行:
gedit /etc/my.cnf
添加
[client]
default-character-set=utf8
在[mysqld]里面添加一行:
character_set_server=utf8
保存重启mysql服务。登陆mysql再查看编码如下:
这样就好了,建议在建立数据库和建表时指定编码。
备注:
此处我是用的是gedit编辑器,如果无GUI,可使用vi或vim编辑器。
日常问题解决:
持续更新……