CentOS安装MySql

CentOS7的yum源中默认好像是没有mysql的。为了解决这个问题,我们要先下载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包

$ 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

$ yum install mysql-server

根据步骤安装就可以了,不过安装完成后,没有密码,需要重置密码。
然后,重启服务:

$ service mysqld restart

4.重置密码

$ mysql -uroot
mysql>set password for 'root'@'localhost' = password('root123456');
mysql> exit

5. 开放3306端口

$ vi /etc/sysconfig/iptables

添加以下内容:

-A INPUT -p tcp -m state --state NEW -m tcp --dport 3306 -j ACCEPT

保存后重启防火墙:

$ service iptables restart

这样从其它客户机也可以连接上mysql服务了。

6.登陆

6.1:本地登录

mysql -u root -p

6.2:远程登录

mysql -h 192.168.1.1 -u root -p

7.问题

7.1:mysq连接报1130的错误

例如,你想root使用root123456从任何主机连接到mysql服务器的话。

GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY 'root123456' WITH GRANT OPTION;
FLUSH   PRIVILEGES;

如果你想允许用户root从ip为192.168.1.6的主机连接到mysql服务器,并使用root123456作为密码

GRANT ALL PRIVILEGES ON *.* TO 'root'@'192.168.1.3' IDENTIFIED BY 'root123456' WITH GRANT OPTION;
FLUSH   PRIVILEGES;

如果你想允许用户root从ip为192.168.1.6的主机连接到mysql服务器的dk数据库,并使用root123456作为密码

GRANT ALL PRIVILEGES ON dk.* TO 'root'@'192.168.1.3' IDENTIFIED BY 'root123456' WITH GRANT OPTION;
FLUSH   PRIVILEGES

8:数据库迁移

首先我们需要关闭MySQL,命令如下:

#service mysqld stop

转移数据,

#cd /var/lib
#ls
#cp -a mysql /opt/mysql/
这样就把数据库复制到/opt/mysql下面去了,注意-a这个参数一定要带着,否则复制过去的权限就不对了。

修改配置文件

#vi /etc/my.cnf

在[client]下添加
socket=/opt/mysql/mysql.sock
注释掉之前的代码
#datadir=/var/lib/mysql
#socket=/var/lib/mysql/mysql.sock

修改为:
datadir=/opt/mysql
socket=/opt/mysql/mysql.sock

vi /etc/init.d/mysqld【修改datadir的目录】
注释掉之前的代码
#get_mysql_option mysqld datadir "/var/lib/mysql"

修改为:
get_mysql_option mysqld datadir "/opt/mysql"

vi /usr/bin/mysqld_safe【修改datadir的目录】
注释掉之前的代码
#DATADIR=/var/lib/mysql

修改为:
DATADIR=/opt/mysql

建立一个mysql.sock的链接

ln -s /opt/mysql/mysql.sock /var/lib/mysql/mysql.sock

启动mysql

service mysqld start

微信公众号,欢迎扫码关注