1、获取软件包
$ wget http://mirror.provenscaling.com/mysql/enterprise/source/5.0/mysql-5.0.70.tar.gz
2、编译安装mysql
# groupadd mysql //建立组mysql
# useradd -g mysql mysql //建立用户mysql
# tar -zxvf mysql-5.0.70.tar.gz
# cd mysql-5.0.70 //进入安装包
# ./configure / //配置
--prefix=/usr/local/mysql / //设定安装路径
--enable-thread-safe-client / //编译线程安全版的客户端库
--enable-local-infile / //支持load命令中的local选项
--with-innodb / //支持innodb 事务处理
--with-charset=utf8 / //数据库字符集
--with-extra-charset=all //数据库扩展字符集
# make
# make install
//配置的时候要是成功会有提示。如果不成功而出现下面的错误
//configure: error: No curses/termcap library found
//则需要运行命令:sudo apt-get install libncurses5-dev 安装缺少的库文件
3、配置mysql
# cp support-files/my-medium.cnf /etc/my.cnf //拷贝配置文件
# cp support-files/mysql.server /usr/bin //拷贝mysql服务器文件,用于在/usr/bin中启动、关闭服务
# ln /usr/local/mysql/bin/mysql /usr/bin/mysql //建立mysql的硬连接,用于在/usr/bin中启动mysql客户端
# cd /usr/local/mysql
# chown -R mysql .
# chgrp -R mysql .
# bin/mysql_install_db --user=mysql //初始化所有表
//初始化所有表之后可以运行mysql自带的测试脚本
$ cd mysql-test/ //进入mysql-test目录
$ sudo perl mysql-test-run.pl //使用perl运行测试脚本
$ cd .. //退回到/usr/local/mysql目录下
# chown -R root .
# chown -R mysql var
4、加入自动运行
# cd mysql-5.0.70 //进入安装包
# cp support-files/mysql.server /etc/rc.d/init.d/mysqld
# chmod 700 /etc/rc.d/init.d/mysqld //赋予执行权限
# chkconfig --add mysqld
# chkconfig --level 345 mysqld on //加入自动启动服务队列
5、 测试
# /usr/local/mysql/bin/mysqladmin ping
# /usr/local/mysql/bin/mysqladmin version
# /usr/local/mysql/bin/mysql –u root -p
6、配置文件 /etc/my.cnf
set-variable=max_connections=1000 //max_connections设置最大连接数为1000
set-variable=max_user_connections=500 //max_user_connections设置每用户最大连接数为500
set-variable=wait_timeout=200 //wait_timeout表示200秒后将关闭空闲(IDLE)的连接,但是对正在工作的连接不影响
7、mysql服务的打开、关闭、重启命令
//在使用/usr/local/bin目录下的mysql.server命令之前要保证它是可执行的
($ sudo chmod +x mysql.server)
# mysql.server start
# mysql.server stop
# mysql.server restart
8、打开mysql,更改密码
$ mysql -u root -p //使用默认的root用户进入数据库,但此时密码为空
mysql> GRANT ALL PRIVILEGES ON *.* TO root@localhost IDENTIFIED BY "123456";//设置root的密码为"123456"
//这样就建立了一个xoops_roots的用户,它对数据库xoops有着全部权限。以后就用xoops_root来对xoops数据库进行管理,而无需要再用root用户了,
//而该用户的权限也只被限定在xoops数据库中。
mysql>CREATE DATABASE xoops;
mysql>GRANT ALL PRIVILEGES ON xoops.* TO xoops_root@localhost IDENTIFIED BY "654321";
9、开启远程访问或控制
//允许xoops_root用户可以从任意机器上登入MySQL
mysql>GRANT ALL PRIVILEGES ON xoops.* TO xoops_root@"%" IDENTIFIED BY "654321";
//允许其他机器访问MySQL了
$ sudo gedit /etc/mysql/my.cnf
>skip-networking => # skip-networking
10、自动启动
(1)、察看mysql是否在自动启动列表中
# /sbin/chkconfig –list
(2)、把MySQL添加到你系统的启动服务组里面去
# /sbin/chkconfig – add mysql
(3)、把MySQL从启动服务组里面删除。
# /sbin/chkconfig – del mysql
11、更改MySQL目录
MySQL默认的数据文件存储目录为/var/lib/mysql。假如要把目录移到/home/data下需要进行下面几步:
(1)、home目录下建立data目录
$ cd /home
$ mkdir data
(2)、把MySQL服务进程停掉:
# mysql.server stop
(3)、把/var/lib/mysql整个目录移到/home/data
# mv /var/lib/mysql /home/data/
这样就把MySQL的数据文件移动到了/home/data/mysql下
(4)、找到/etc/my.cnf配置文件
如果/etc/目录下没有my.cnf配置文件,则到使用make安装的mysql安装文件夹下的support-files下找到my-medium.cnf, 拷贝到/etc/并改名为my.cnf。
(5)、编辑MySQL的配置文件/etc/my.cnf
为保证MySQL能够正常工作,需要指明mysql.sock文件的产生位置。 修改socket=/var/lib/mysql/mysql.sock一行中等号右边的值为:/home/data/mysql/mysql.sock。操作如下:
# vim my.cnf
# The MySQL server
[mysqld]
port = 3306
#socket = /var/lib/mysql/mysql.sock(原内容,为了更稳妥用“#”注释此行)
socket = /home/data/mysql/mysql.sock (加上此行)
(6)、修改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 (注释此行)
datadir=/home/data/mysql (加上此行)
(7)、重新启动MySQL服务
# mysql.server start
或用reboot命令重启Linux
如果工作正常移动就成功了,否则对照前面的7步再检查一下。