准备篇
一、配置防火墙,开启80端口、3306端口
CentOS 7.0默认使用的是firewall作为防火墙,这里改为iptables防火墙。
1、关闭firewall:
systemctl stopfirewalld.service #停止firewall
systemctl disablefirewalld.service #禁止firewall开机启动
2、安装iptables防火墙
yum installiptables-services #安装
vi/etc/sysconfig/iptables #编辑防火墙配置文件
# Firewall configurationwritten by system-config-firewall
# Manual customizationof this file is not recommended.
*filter
:INPUT ACCEPT [0:0]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [0:0]
-A INPUT -m state--state ESTABLISHED,RELATED -j ACCEPT
-A INPUT -p icmp -jACCEPT
-A INPUT -i lo -j ACCEPT
-A INPUT -m state--state NEW -m tcp -p tcp --dport 22 -j ACCEPT
-A INPUT -m state--state NEW -m tcp -p tcp --dport 80 -j ACCEPT
-A INPUT -m state--state NEW -m tcp -p tcp --dport 3306 -j ACCEPT
-A INPUT -j REJECT--reject-with icmp-host-prohibited
-A FORWARD -j REJECT--reject-with icmp-host-prohibited
COMMIT
:wq! #保存退出
systemctl restartiptables.service #最后重启防火墙使配置生效
systemctl enableiptables.service #设置防火墙开机启动
二 、系统约定
软件源代码包存放位置:/usr/local/src
源码包编译安装位置:/usr/local/软件名字
四、下载软件包
1、下载MySQL
http://cdn.mysql.com/Downloads/MySQL-5.6/mysql-5.6.19.tar.gz
2、下载cmake(MySQL编译工具)
http://www.cmake.org/files/v2.8/cmake-2.8.11.2.tar.gz
五、安装篇
一、安装MySQL
1、安装cmake
cd /usr/local/src
tar zxvfcmake-2.8.11.2.tar.gz
cd cmake-2.8.11.2
./configure
make
make install
2、安装MySQL
首先centos7 已经不支持mysql,因为收费了你懂得,所以内部集成了mariadb,而安装mysql的话会和mariadb的文件冲突,所以需要先卸载掉mariadb,以下为卸载mariadb,安装mysql的步骤。
#列出所有被安装的rpmpackage
rpm -qa | grep mariadb
#卸载
rpm -emariadb-libs-5.5.37-1.el7_0.x86_64
错误:依赖检测失败:
libmysqlclient.so.18()(64bit) 被 (已安裝)postfix-2:2.10.1-6.el7.x86_64 需要
libmysqlclient.so.18(libmysqlclient_18)(64bit) 被 (已安裝)postfix-2:2.10.1-6.el7.x86_64 需要
#强制卸载,因为没有--nodeps
rpm -e --nodepsmariadb-libs-5.5.37-1.el7_0.x86_64
groupadd mysql #添加mysql组
useradd -g mysql mysql-s /bin/false #创建用户mysql并加入到mysql组,不允许mysql用户直接登录系统
mkdir -p /data/mysql #创建MySQL数据库存放目录
chown -R mysql:mysql/data/mysql #设置MySQL数据库存放目录权限
mkdir -p/usr/local/mysql #创建MySQL安装目录
cd /usr/local/src #进入软件包存放目录
tar zxvfmysql-5.6.19.tar.gz #解压
cd mysql-5.6.19 #进入目录
cmake .-DCMAKE_INSTALL_PREFIX=/usr/local/mysql -DMYSQL_DATADIR=/data/mysql-DSYSCONFDIR=/etc #配置
make #编译
make install #安装
rm -rf /etc/my.cnf #删除系统默认的配置文件(如果默认没有就不用删除)
cd /usr/local/mysql #进入MySQL安装目录
./scripts/mysql_install_db--user=mysql --basedir=/usr/local/mysql --datadir=/data/mysql #生成mysql系统数据库
ln -s/usr/local/mysql/my.cnf /etc/my.cnf #添加到/etc目录的软连接
cp ./support-files/mysql.server/etc/rc.d/init.d/mysqld #把Mysql加入系统启动
chmod 755/etc/init.d/mysqld #增加执行权限
chkconfig mysqld on #加入开机启动
vi/etc/rc.d/init.d/mysqld #编辑
basedir=/usr/local/mysql#MySQL程序安装路径
datadir=/data/mysql#MySQl数据库存放目录
service mysqld start #启动
vi /etc/profile #把mysql服务加入系统环境变量:在最后添加下面这一行
exportPATH=$PATH:/usr/local/mysql/bin
source /etc/profile
下面这两行把myslq的库文件链接到系统默认的位置,这样你在编译类似PHP等软件时可以不用指定mysql的库文件地址。
ln -s/usr/local/mysql/lib/mysql /usr/lib/mysql
ln -s/usr/local/mysql/include/mysql /usr/include/mysql
mkdir /var/lib/mysql #创建目录
ln -s /tmp/mysql.sock/var/lib/mysql/mysql.sock #添加软链接
mysql_secure_installation#设置Mysql密码,根据提示按Y 回车输入2次密码
Mysql就此安装完毕,但是安装完成后只能本机登录 不能远程登录需要修改表来添加外部登陆权限
解决方法:
1。 改表法。
可能是你的帐号不允许从远程登陆,只能在localhost。这个时候只要在localhost的那台电脑,登入mysql后,更改 "mysql" 数据库里的 "user" 表里的 "host" 项,从"localhost"改称"%"
mysql -u root -pvmwaremysql>use mysql;
mysql>update user set host = '%' where user = 'root';
mysql>select host, user from user;
2. 授权法。
例如,你想myuser使用mypassword从任何主机连接到mysql服务器的话。
GRANT ALL PRIVILEGES ON *.* TO 'myuser'@'%' IDENTIFIED BY'mypassword' WITH GRANT OPTION;
FLUSH PRIVILEGES;
如果你想允许用户myuser从ip为192.168.1.6的主机连接到mysql服务器,并使用mypassword作为密码
GRANT ALL PRIVILEGES ON *.* TO 'myuser'@'192.168.1.3' IDENTIFIEDBY 'mypassword' WITH GRANT OPTION;
FLUSH PRIVILEGES;
如果你想允许用户myuser从ip为192.168.1.6的主机连接到mysql服务器的dk数据库,并使用mypassword作为密码
GRANT ALL PRIVILEGES ON dk.* TO 'myuser'@'192.168.1.3'IDENTIFIED BY 'mypassword' WITH GRANT OPTION;
FLUSH PRIVILEGES;
我用的第一个方法,刚开始发现不行,在网上查了一下,少执行一个语句 mysql>FLUSH RIVILEGES 使修改生效.就可以了
另外一种方法,不过我没有亲自试过的,在csdn.net上找的,可以看一下.
在安装mysql的机器上运行:
1、d:\mysql\bin\>mysql -h localhost -u root //这样应该可以进入MySQL服务器
2、mysql>GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' WITH GRANT OPTION//赋予任何主机访问数据的权限
3、mysql>FLUSH PRIVILEGES //修改生效
4、mysql>EXIT//退出MySQL服务器
这样就可以在其它任何的主机上以root身份登录啦!