本篇将详细介绍在如下两种情况下安装Mysql的步骤与方法.
-
在一台服务器上,有m个帐号,你是作为其中的某一帐号。服务器上已经有n个Mysql服务启动了(m>=n)。现在你也要在自己的帐号上安装Mysql服务。
-
在一台服务器上,有m个帐号,你是作为其中的某一帐号。但是,还有许多人与你共用这一帐号(如,work帐号,有x个共用这个帐号)。在这个帐号上,很多人都想安装Mysql。因此,在这个帐号上有多台Mysql服务。你也想在上面安装自己的mysql服务。
在上面两种情况下,安装Mysql的方法是相同的。
本教程需要读者熟悉Linux环境的基本命令,在某些地方我只会点到为止,不会说明为什么,也不会解释一些常见Linux命令。
下面将详细的介绍安装方法::
在一台服务器上安装多个Mysql,每个帐号可以有,也可以没有。而且一个帐号可以安装多个Mysql。
方法:
- 在http://www.mysql.com/downloads/mysql/5.1.html#downloads上面下载Mysql5.1版本
- 进入mysql目录下
- ./configure --prefix=$HOME/usr/local/mysql (prefix选项是指你要安装到的路径)
- make
- make install
- 到这步,就已经完成了Mysql安装的第一部分。接着,
- 一般来说,如果我们是第一个安装Mysql的用户,我们可以在/etc/my.cnf下配置Mysql。但是,因为目前服务器上已经有多个Mysql实例了,而且,我们没有root权限,因此,我们只能在自己目录下配置my.cnf。将mysql提供给我们的经典配置文件拷贝到自己的目录下,运行命令:
cd $HOME/usr/local/mysql/
cp share/mysql/my-huge.cnf my.cnf
- 修改my.cnf文件。一般来说,我们要修改端口号和socket【Socket是Mysql服务器用来与外来程序交互的socket文件,每一个Mysql服务器只能有一个】
修改的范例如下:
[client]
port = 7780
socket = /home/liaoqiqi/tmp/mysql.sock
[mysqld]
port = 7780
socket = /home/liaoqiqi/tmp/mysql.sock
- 在上面的两步操作中,我们已经配置好了我们自己的Mysql的配置文件,包括它的端口号和Socket。下面,我们来安装本地数据库。
- 安装Mysql默认的本地数据库及表格
cd $HOME/usr/local/mysql/bin
./mysql_install_db --defaults-file=~/usr/local/mysql/my.cnf
- 安装了数据库默认的一些表后,现在,我们可以启动Mysql服务了:
cd $HOME/usr/local/mysql/
nohup ./mysqld_safe --defaults-file=~/usr/local/mysql/my.cnf &
- 在成功启动Mysql服务后,我们可以用Mysql客户端来连接它了。但是,我们要先初始化密码。
$HOME/usr/local/mysql/bin/mysqladmin –uroot password 123456
然后,我们可以用客户端来连接它了:
$HOME/usr/local/mysql/bin/mysql -P 7780 –uroot -p
- 接着,我们可以新建一个用户,并为他授予权限。如:
create user dnweb identified by '123456'
grant all privileges on . TO 'dnweb'@'%' IDENTIFIED BY '123456' WITH GRANT OPTION;
flush privileges;
- 停止Mysql服务的方法:
mysqladmin -uroot -p shutdown -S /home/liaoqiqi/tmp/mysql.sock
进阶阅读:为Mysql提供扩展,安装Python-Mysql:
- 请安装MySQL-python-1.2.3.tar.gz
- 将它配置在Linux环境中:
修改~/.bash_profile文件,将$HOME/usr/local/mysql/lib/mysql/添加到 $LD_LIBRARY_PATH 环境变量中。
source ~/.bash_profile
Reference:
- 本篇文章主要参考:linux下非root权限的mysql安装
- mySQL Setup Guide
- 请问如何查看mysql 的端口号?
- 命令行如何远程连接MySQL数据库
- MySQL配置文件my.cnf中文版
- 可能的错误:_mysql_exceptions.OperationalError: (2002, "Can't connect to local MySQL server through socket '/var/run/mysqld/mysqld.sock' (2)")
- 可能的错误:[ERROR] Fatal error: Can't open and lock privilege tables: Table 'mysql.host' doesn't exist
- 可能的错误:error while loading shared libraries: libmysqlclient.so.15: cannot open shared object file: No such file or directory.
- 关闭mysql服务的正确方法
- 查看mysql所对应的socket的位置:netstat -ln | grep mysql
- 官方的Mysql客户端连服务器端出错问题解析 5.4.7. Causes of Access-Denied Errors
- MySQL 5.1 Reference Manual