【下载】
登录MySQL官网下载页 http://dev.mysql.com/downloads/mysql/
选择 Linux-Generic 而不是Oracle & Ren Hat Linux 6
下载对应的server 和 client 包,在此笔者选用64位
MySQL-client-5.5.31-2.linux2.6.x86_64.rpm
MySQL-server-5.5.31-2.linux2.6.x86_64.rpm
【依赖解决】
下载完毕后上传到Linux下,首先安装MySQL依赖组建,如下所示
yum -y install perl
yum -y install libaio
内网数据库服务器下载以下安装包:
www.perl.org
http://pkgs.org/centos-6-rhel-6/centos-rhel-x86_64/libaio-0.3.107-10.el6.x86_64.rpm/download/
rpm –ivh libaio-0.3.107-10.el6.x86_64.rpm
tar –zxvf ActivePerl-5.16.3.1603-x86_64-linux-glibc-2.3.5-296746.tar.gz
安装PERL需要配置路径和环境变量 /etc/profile
/usr/bin/建立一个perl的 连接到
Rm –rf /usr/bin/perl
Ln –s /opt/mntvdb/servers/ActivePerl-5.16/bin/perl /usr/bin/perl
【安装】
执行安装命令
rpm -ivh MySQL-server-5.6.13-1.linux_glibc2.5.x86_64.rpm --force --nodeps
rpm -ivh MySQL-client-5.6.13-1.linux_glibc2.5.x86_64.rpm --force –nodeps
提示 /usr/bin/perl is needed rpm 加参数 --force –nodeps
启动MySQL
service mysql start
查看MySQL是否正常启动(默认端口:3306)
netstat –nat |grep 3306
可以在/etc/sysconfig/IPTABLES增加3306端口的支持。(安全上改为LOCALHOST的端口权限会更好)
【安装路径】
数据库目录 /var/lib/mysql/ 可以更改为其他目录
配置文件 /usr/share/mysql (mysql.server命令及配置文件)
相关命令 /usr/bin (客户端程序和脚本mysqladmin mysqldump等命令)
/usr/sbin:mysqld
启动脚本 /etc/rc.d/init.d/ (启动脚本文件mysql的目录
启动脚本 mysql
根据错误地址 查看日志文件
这里的地址是 /var/lib/mysql/
日志名称一般为 服务器名.err
mysql: /usr/bin/mysql /usr/lib64/mysql /usr/share/mysql /usr/share/man/man1/mysql.1.gz
缺省值 basedir= /usr
可以看/etc/rc.d/init.d/mysql 的启动脚本。。。
可以通过指令:
whereis mysql
【文件权限】
错误:Can't connect to local MySQL server through socket '/var/lib/mysql/mysql.sock
应该是没有权限了,赋予mysql权限
chown -R mysql:mysql /var/lib/mysql/
mysql:mysql 是 脚本建立的用户名和用户组
【初始化】
Service mysql stop
执行表的初始化
/usr/bin/mysql_install_db
mysql_install_db --basedir=/home/mysql/mysql --datadir=/home/mysql/mysql/data --user=mysql –force
mysql_install_db --datadir=/opt/mntvdb/servers/mysqldata --user=mysql –force
rpm包安装的MySQL是不会安装/etc/my.cnf文件的,解决方法,只需要复制/usr/share/mysql目录下的my-huge.cnf 文件到/etc目录,并改名为my.cnf即可
cp /usr/share/mysql/my-default.cnf /etc/my.cnf
【设置mysql密码】
设置mysql密码
/usr/bin/mysqladmin -u root password '你的新密码'
mysql -u root
出现错误:error 1045(28000):access denied for user 'root'@'localthost'(using password:NO)
可能是user数据库未成功初始化数据
[root@loaclhost] /usr/bin/mysqld_safe --user=mysql --skip-grant-tables --skip-networking&
如果 --user=mysql写错成 --usr=mysql 就好提示以下错误:
[ERROR] /usr/sbin/mysqld: unknown variable 'usr=mysql'
停止服务
# /etc/init.d/mysql stop
# mysqld_safe --user=mysql --skip-grant-tables --skip-networking &
换一个终端登录
# mysql -u root
mysql>Use mysql
mysql> UPDATE user SET password=PASSWORD('newpassword') where USER='root';
mysql> FLUSH PRIVILEGES;
mysql> quit
Enter password: <输入新设的密码newpassword>
【更改密码】
首次安装时,默认密码为空,可以使用如下命令修改root密码,
/usr/bin/mysqladmin -u root password 新密码XXXXX
然后再次登录
mysql -u root –p新密码XXXXX
修改登录密码
这是通过mysqladmin命令修改口令,也可通过修改库来更改口令。
UPDATE user SET password=PASSWORD('newpassword') where USER='root';
Query OK, 4 rows affected (0.00 sec)
Rows matched: 4 Changed: 4 Warnings: 0
FLUSH PRIVILEGES;
也就是用mysql> SET PASSWORD = PASSWORD('123456');
【手动启动】
可以启动守护进程
/usr/bin/mysqld_safe &
mysqld_safe --user=XXX --basedir=XXX --datadir=XXX &
mysqld_safe --user=mysql --datadir=/opt/data2013/servers/mysqldata/mysql &
mysqld_safe --user=mysql --datadir=/opt/mntvdb/servers/mysqldata &
mysqld_safe 研究脚本的参数。。。
【启动与停止】
启动
MySQL安装完成后启动文件mysql在/etc/init.d目录下,在需要启动时运行下面命令即可。
/etc/init.d/mysql start
或者
/etc/rc.d/init.d/mysql start
停止
/usr/bin/mysqladmin -u root -p shutdown
自动启动
1)察看mysql是否在自动启动列表中
/sbin/chkconfig –list
2)把MySQL添加到你系统的启动服务组里面去
/sbin/chkconfig – add mysql
3)把MySQL从启动服务组里面删除。
/sbin/chkconfig – del mysql
Service mysql start/stop/status
【更改MySQL目录】
MySQL默认的数据文件存储目录为/var/lib/mysql。
假如要把目录移到/home/data下需要进行下面几步:
Step1
home目录下建立data目录
cd /opt/data2013/
mkdir mysqldata
赋予权限:
chown -R mysql:mysql /opt/data2013/servers/mysqldata/
chown -R mysql:mysql /opt/data2013/servers/mysqldata/mysql
step2
把MySQL服务进程停掉:
mysqladmin -u root -p shutdown
step3
把/var/lib/mysql整个目录移到/opt/data2013/servers/mysqldata
mv /var/lib/mysql /opt/data2013/servers/mysqldata
或者,重新初始化数据库
/usr/bin/mysql_install_db --datadir=/opt/data2013/servers/mysqldata/mysql --user=mysql –force
Step4
修改my.cnf配置文件
如果/etc/目录下没有my.cnf配置文件,请到/usr/share/mysql/下找到*.cnf文件,
拷贝其中一个到/etc/并改名为my.cnf)中。命令如下:
cp /usr/share/mysql/my-default.cnf /etc/my.cnf
编辑MySQL的配置文件/etc/my.cnf
为保证MySQL能够正常工作,需要指明mysql.sock文件的产生位置。
修改socket=/var/lib/mysql/mysql.sock一行中等号右边的值
为:/opt/data2013/mysqldata 。操作如下:
vi my.cnf ##用vi工具编辑my.cnf文件,找到下列数据修改之
注意[mysql]和[mysqld]区别,由于服务名叫mysqld 所以,对应my.cnf的节也要对应。
[client]
default-character-set=utf8
#[mysql]
socket = /opt/data2013/servers/mysqldata/mysql/mysql.sock
#pid-file =/opt/data2013/servers/mysqldata/mysql/mysqld.pid
[mysqld]
port = 3306
datadir = /opt/data2013/servers/mysqldata/mysql
#socket = /var/lib/mysql/mysql.sock
user = mysql
log-bin = mysql-bin
pid-file =/opt/data2013/servers/mysqldata/mysql/mysqld.pid
socket = /opt/data2013/servers/mysqldata/mysql/mysql.sock
log-error=/opt/data2013/servers/mysqldata/mysql/mysqld.log
[mysql_safe]
log-error=/opt/data2013/servers/mysqldata/mysql/mysqld.log
pid-file =/opt/data2013/servers/mysqldata/mysql/mysqld.pid
socket = /opt/data2013/servers/mysqldata/mysql/mysql.sock
datadir = /opt/data2013/servers/mysqldata/mysql
user = mysql
Step5
修改MySQL启动脚本/etc/rc.d/init.d/mysql
最后,需要修改MySQL启动脚本/etc/rc.d/init.d/mysql,把其中datadir=/var/lib/mysql一行中,等号右边的路径改成你现在的实际存
放路径:home/data/mysql。
vi /etc/rc.d/init.d/mysql
#datadir=/var/lib/mysql##注释此行
5.15服务器:datadir=/opt/data2013/servers/mysqldata/mysql ##加上此行
5.10服务器:datadir=/opt/mntvdb/servers/mysqldata ##加上此行
Step6
重新启动MySQL服务
/etc/rc.d/init.d/mysql start
或用reboot命令重启Linux
如果工作正常移动就成功了,否则对照前面的7步再检查一下。
【配置远程访问】
处于安全考虑,Mysql默认是不允许远程访问的,可以使用下面开启远程访问
//赋予任何主机访问数据的权限
mysql>GRANT ALL PRIVILEGES ON *.* TO 'root'@'%'WITH GRANT OPTION
//使修改生效
mysql>FLUSH PRIVILEGES
如果依然不能远程访问的话,那就很可能防火墙的原因了,可以在防火墙中开启3306端口。
登录mysql
mysql -p 回车输入密码
如果提示无法启动,PID不对,可以尝试服务器启动脚本mysql或者叫mysqld。。。
下载 /etc/rc.d/init.d/mysql
修改datadir=/opt/data2013/servers/mysqldata/mysql
备份 mv /etc/rc.d/init.d/mysql /etc/rc.d/init.d/mysql.bak
上次修改后的 mysql
Chmod +x /etc/rc.d/init.d/mysql
然后 service start
--转自