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