1,下载MYSQL安装程序
地址:http://www.mysql.com/downloads/mysql/
选择你所安装环境下的服务器:
分别下载
SERVER程序:MySQL-server-community-5.1.44-1.rhel5.i386.rpm
CLIENT工具:MySQL-client-community-5.1.44-1.rhel5.i386.rpm
2,通过本地SSH Secure工具将文件上传到服务器
1)安装服务器端
在有两个rmp文件的目录下运行如下命令:
[root@test1 local]# rpm -ivh MySQL-server-community-5.1.44-1.rhel5.i386.rpm
显示如下信息:
Preparing... ########################################### [100%]
1:MySQL-server ########################################### [100%]
2)测试是否安装成功
[root@test1 local]# netstat -natpl
显示3306端口开放表示服务安装成功
3)安装客户端工具
[root@test1 local]# rpm -ivh MySQL-client-community-5.1.44-1.rhel5.i386.rpm
Preparing... ########################################### [100%]
1:MySQL-client ########################################### [100%]
显示安装完成
4)测试连接
[root@test1 local]# mysql
出现如下提示符
mysql>
表示登陆成功。
以上登陆情况是在没有设置密码的情况下登陆,在设置防火墙前注意对MYSQL设置密码
5)对MYSQL用户ROOT设置密码
[root@test1 local]# /usr/bin/mysqladmin -u root password 123456
注:123456只是事例密码,实际配置过程中注意相关密码复杂性要求
6) 对mysql用户设置远程访问权限
方法1,改表法。可能是你的帐号不允许从远程登陆,只能在localhost。
这个时候只要在localhost的那台电脑,登入mysql后,更改 “mysql” 数据库里的 “user” 表里的 “host” 项,从“localhost”改称“%”
mysql -u root -p123456
mysql>use mysql;
mysql>update user set host = ‘%’ where user = ‘root’;
mysql>select host, user from user;
mysql>FLUSH PRIVILEGES
方法2,授权法。例如,你想myuser使用mypassword从任何主机连接到mysql服务器的话。
mysql>GRANT ALL PRIVILEGES ON *.* TO myuser@'%' IDENTIFIED BY 'mypassword' WITH GRANT OPTION;
mysql>FLUSH PRIVILEGES;
如果你想允许用户myuser从ip为10.0.0.233的主机连接到mysql服务器,并使用mypassword作为密码
myql>GRANT ALL PRIVILEGES ON *.* TO 'myuser'@'10.0.0.233' IDENTIFIED BY 'mypassword' WITH GRANT OPTION;
myql>FLUSH PRIVILEGES;
7) 对LINUX系统IPTABLES配置,使外网用户能够访问MYSQL
修改/etc/sysconfig下的iptables文件;
原文件内容如下:
[root@linux1 sysconfig]# vi iptables
# Firewall configuration written by system-config-securitylevel
# Manual customization of this file is not recommended.
*filter
:INPUT ACCEPT [0:0]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [0:0]
:RH-Firewall-1-INPUT - [0:0]
-A INPUT -j RH-Firewall-1-INPUT
-A FORWARD -j RH-Firewall-1-INPUT
-A RH-Firewall-1-INPUT -i lo -j ACCEPT
-A RH-Firewall-1-INPUT -p icmp --icmp-type any -j ACCEPT
-A RH-Firewall-1-INPUT -p 50 -j ACCEPT
-A RH-Firewall-1-INPUT -p 51 -j ACCEPT
-A RH-Firewall-1-INPUT -p udp --dport 5353 -d 224.0.0.251 -j ACCEPT
-A RH-Firewall-1-INPUT -p udp -m udp --dport 631 -j ACCEPT
-A RH-Firewall-1-INPUT -p tcp -m tcp --dport 631 -j ACCEPT
-A RH-Firewall-1-INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
-A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 22 -j ACCEPT
-A RH-Firewall-1-INPUT -j REJECT --reject-with icmp-host-prohibited
COMMIT
在原文件内容下插入
-A RH-Firewall-l-INPUT -m tcp -m tcp --dport 3306 -j ACCEPT
注:插入内容位置不能在最后一行应在倒数第三行
修改后内容如下:
[root@linux1 sysconfig]# vi iptables
# Firewall configuration written by system-config-securitylevel
# Manual customization of this file is not recommended.
*filter
:INPUT ACCEPT [0:0]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [0:0]
:RH-Firewall-1-INPUT - [0:0]
-A INPUT -j RH-Firewall-1-INPUT
-A FORWARD -j RH-Firewall-1-INPUT
-A RH-Firewall-1-INPUT -i lo -j ACCEPT
-A RH-Firewall-1-INPUT -p icmp --icmp-type any -j ACCEPT
-A RH-Firewall-1-INPUT -p 50 -j ACCEPT
-A RH-Firewall-1-INPUT -p 51 -j ACCEPT
-A RH-Firewall-1-INPUT -p udp --dport 5353 -d 224.0.0.251 -j ACCEPT
-A RH-Firewall-1-INPUT -p udp -m udp --dport 631 -j ACCEPT
-A RH-Firewall-1-INPUT -p tcp -m tcp --dport 631 -j ACCEPT
-A RH-Firewall-1-INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
-A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 22 -j ACCEPT
-A RH-Firewall-1-INPUT -m tcp -m tcp --dport 3306 -j ACCEPT
-A RH-Firewall-1-INPUT -j REJECT --reject-with icmp-host-prohibited
COMMIT
重启IPTABLES
[root@linux1 sysconfig]# sevice iptables restart
完成安装
附MSYQL安装目录结构
1、数据库目录
/var/lib/mysql/
2、配置文件
/usr/share/mysql(mysql.server命令及配置文件)
3、相关命令
/usr/bin(mysqladmin mysqldump等命令)
4、启动脚本
/etc/rc.d/init.d/(启动脚本文件mysql的目录)
2,数据库目录转移
1,在根目录下新建文件夹
[root@linux1 ~]# mkdir mysqldata
2, 停止MYSQL服务器
service mysql stop
复制/var/lib/mysql下所有文件到/mysqldata
查看原数据库文件夹下各文件权限默认为mysql
3, 更改/mysqldata下各文件权限
[root@linux1 ~]# chgrp -R mysql ./mysqldata && chown -R mysql ./mysqldata
检查权限
[root@linux1 /]# ls -l
4, 配置my.cnf文件
复制并更改文件到/etc目录下
[root@linux1 mysql]# cp /usr/share/mysql/my-medium.cnf /etc/my.cnf
5, 修改my.cnf
# The MySQL server
[client]
#password = your_password
port = 3306
# socket = /var/lib/mysql/mysql.sock
socket =/mysqldata/mysql.sock --增加此行,并配置数据库目录
[mysqld]
port = 3306
# socket = /var/lib/mysql/mysql.sock
socket =/mysqldata/mysql.sock --增加此行,并配置数据库目录
6, 修改启动文件
修改/etc/rc.d/init.d/mysql
找到datadir位置,修改内容如下
# Set some defaults
pid_file=
server_pid_file=
use_mysqld_safe=1
user=mysql
if test -z "$basedir"
then
basedir=/
bindir=/usr/bin
if test -z "$datadir"
then
# datadir=/var/lib/mysql --修改前内容
datadir=/mysqldata --修改后内容
fi
sbindir=/usr/sbin
7,启动MYSQL服务
[root@linux1 mysql]#service mysql start
注: 1,MYSQL更改数据库目录后相关错误日志文件存为/mysqldata下的.err文件
2,更改目录完成后可能出现SELINUX报错,本人建议不要关闭SELINUX,解决办法为:
使用ls -laZ查看原数据库目录及相关文件的策略属性,通过chcon修改移动后的文件策略属性:例如:
[root@linux1 mysql]#chcon -t mysqld_db_t /mysqldata
3,整个移动数据库过程中一定要注意权限也要跟着移动