MySQL、Sql Server、Oracle是三大主流数据库,MySQL也是LAMP安装配置中难度较大的,详细使用指南见英文官方手册《MySQL 5.1 Reference Manual》,选择二进制分发版,可以避免很多错误的出现,性能方面也比自己源码编译要强。
一、准备工作 1.1、MySQL版本介绍MySQL 官方放出的版本比较多,但没有针对 Ubuntu 的版本,所以只能选择二进制分发版和源码分发版,前者已经编译并经过优化了,后者没有。
MySQL 二进制分发版的文件名格式为 mysql-VERSION-OS.tar.gz,其中 VERSION 是版本号(例如,5.1.51),OS表示分发版安装的操作系统类型(例如,linux-i686)。
1.2、下载二进制分发版1. 系统环境:Ubuntu 10.10
2. 下载地址:http://dev.mysql.com/downloads/
1 | wget ftp://mirror.csclub.uwaterloo.ca/mysql/Downloads/MySQL-5.1/mysql-5.1.53-linux-i686-glibc23.tar.gz |
创建mysql组和mysql用户,该用户只需要在系统中存在,不需要登录,所以添加了 -r 选项。
1 2 | groupadd mysql useradd -r -g mysql mysql |
1 2 3 | tar -zxf mysql-5.1.53-linux-i686-glibc23.tar.gz -C /usr/local/ mv /usr/local/mysql-5.1.53-linux-i686-glibc23 /usr/local/mysql cd /usr/local/mysql/ |
1 | mv /etc/mysql/my.cnf /etc/mysql/my.cnf.bak |
1 2 | chown -R mysql . chgrp -R mysql . |
2.5、初始化授权表
安装MySQL之前,必须创建 MySQL 数据目录和初始化授权表,授权表定义了初始 MySQL 用户账户和访问权限。(了解更多)
1 | scripts/mysql_install_db --user=mysql |
这一步可能出现很多错误,当出现错误后,删除date数据目录,重新再来,直到出现如下图提示。
2.6、更改数据目录权限
初始化授权表后会产生 date 目录,该目录所有者必须改为 mysql。
1 2 | chown -R root . chown -R mysql data |
如果你不复制,MySQL 服务器将使用默认设置。
1 2 | mkdir /etc/mysql cp support-files/my-medium.cnf /etc/mysql/my.cnf |
将 "/usr/local/mysql/bin" 路径加入系统变量中,即直接编辑/etc/environment文件,或者新建软链接。
1 2 3 | ln -s /usr/local/mysql/bin/mysqld_safe /usr/local/bin ln -s /usr/local/mysql/bin/mysqladmin /usr/local/bin ln -s /usr/local/mysql/bin/mysql /usr/local/bin |
mysqld_safe 是用来启动MySQL服务的,它比 mysqld 多了一些安全特性(关于mysqld_safe),mysqld_safe 的许多选项与mysqld的相同(关于 mysqld 命令行选项)
1 | bin/mysqld_safe --user=mysql & |
注意:user参数和&符号必不可少,如果出现问题,见启动故障诊断和排除,直到如下图所示。
三、安装后测试与启动 3.1、检查MySQL服务
首先确保MySQL服务已启动,方法见上面第二8条,能否成功启动关键在于mysql_install_db初始化授权表是否顺利,然后使用mysqladmin来验证MySQL服务。
1 2 3 | bin/mysqladmin version //检查服务器版本 bin/mysqlshow //列出所有数据库 bin/mysqlshow mysql //列出mysql数据库中的所有表 |
Ubuntu 中还可以使用检查进程的方法,查看MySQL是否启动
1 2 | ps -A | grep mysql //查看mysql是否已经后台运行 kill -9 进程号 //强制杀死进程 |
1 2 | cp support-files/mysql.server /etc/init.d/mysql update-rc.d mysql defaults |
- 使用 service 启动:service mysql start
- 使用 mysqld 脚本启动:/etc/init.d/mysql start
- 使用 safe_mysqld 启动:/usr/local/mysql/bin/mysqld_safe --user=mysql &
- 使用 service 停止:service mysql stop
- 使用 mysqld 脚本停止:/etc/init.d/mysql stop
- 使用 mysqladmin 停止:/usr/local/mysql/bin/mysqladmin -u root -p shutdown
- 使用 service 重启:service mysql restart
- 使用 mysqld 脚本停止:/etc/init.d/mysql restart