Centos7下安装配置mysql

时间:2022-04-10 17:10:27

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编码:
Centos7下安装配置mysql
执行:

gedit /etc/my.cnf

添加

[client]
default-character-set=utf8

在[mysqld]里面添加一行:

character_set_server=utf8

保存重启mysql服务。登陆mysql再查看编码如下:

Centos7下安装配置mysql
这样就好了,建议在建立数据库和建表时指定编码。


备注:
此处我是用的是gedit编辑器,如果无GUI,可使用vi或vim编辑器。
日常问题解决:

持续更新……