联系
Knight's Tale » 技术

非root权限安装Mysql

2011-06-19 15:22

本篇将详细介绍在如下两种情况下安装Mysql的步骤与方法.

  1. 在一台服务器上,有m个帐号,你是作为其中的某一帐号。服务器上已经有n个Mysql服务启动了(m>=n)。现在你也要在自己的帐号上安装Mysql服务。

  2. 在一台服务器上,有m个帐号,你是作为其中的某一帐号。但是,还有许多人与你共用这一帐号(如,work帐号,有x个共用这个帐号)。在这个帐号上,很多人都想安装Mysql。因此,在这个帐号上有多台Mysql服务。你也想在上面安装自己的mysql服务。

在上面两种情况下,安装Mysql的方法是相同的。

本教程需要读者熟悉Linux环境的基本命令,在某些地方我只会点到为止,不会说明为什么,也不会解释一些常见Linux命令。

下面将详细的介绍安装方法::

在一台服务器上安装多个Mysql,每个帐号可以有,也可以没有。而且一个帐号可以安装多个Mysql。

方法:

  1. http://www.mysql.com/downloads/mysql/5.1.html#downloads上面下载Mysql5.1版本
  2. 进入mysql目录下
  3. ./configure --prefix=$HOME/usr/local/mysql    (prefix选项是指你要安装到的路径)
  4. make
  5. make install
  6. 到这步,就已经完成了Mysql安装的第一部分。接着,
  7. 一般来说,如果我们是第一个安装Mysql的用户,我们可以在/etc/my.cnf下配置Mysql。但是,因为目前服务器上已经有多个Mysql实例了,而且,我们没有root权限,因此,我们只能在自己目录下配置my.cnf。将mysql提供给我们的经典配置文件拷贝到自己的目录下,运行命令: cd $HOME/usr/local/mysql/ cp share/mysql/my-huge.cnf my.cnf
  8. 修改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
  9. 在上面的两步操作中,我们已经配置好了我们自己的Mysql的配置文件,包括它的端口号和Socket。下面,我们来安装本地数据库。
  10. 安装Mysql默认的本地数据库及表格 cd $HOME/usr/local/mysql/bin ./mysql_install_db --defaults-file=~/usr/local/mysql/my.cnf
  11. 安装了数据库默认的一些表后,现在,我们可以启动Mysql服务了: cd $HOME/usr/local/mysql/ nohup ./mysqld_safe  --defaults-file=~/usr/local/mysql/my.cnf &
  12. 在成功启动Mysql服务后,我们可以用Mysql客户端来连接它了。但是,我们要先初始化密码。 $HOME/usr/local/mysql/bin/mysqladmin –uroot  password 123456 然后,我们可以用客户端来连接它了: $HOME/usr/local/mysql/bin/mysql -P 7780 –uroot  -p
  13. 接着,我们可以新建一个用户,并为他授予权限。如: create user dnweb identified by '123456' grant all privileges on . TO 'dnweb'@'%' IDENTIFIED BY '123456' WITH GRANT OPTION; flush privileges;
  14. 停止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:
  1. 本篇文章主要参考:linux下非root权限的mysql安装
  2. mySQL Setup Guide
  3. 请问如何查看mysql 的端口号?
  4. 命令行如何远程连接MySQL数据库
  5. MySQL配置文件my.cnf中文版
  6. 可能的错误:_mysql_exceptions.OperationalError: (2002, "Can't connect to local MySQL server through socket '/var/run/mysqld/mysqld.sock' (2)")
  7. 可能的错误:[ERROR] Fatal error: Can't open and lock privilege tables: Table 'mysql.host' doesn't exist
  8. 可能的错误:error while loading shared libraries: libmysqlclient.so.15: cannot open shared object file: No such file or directory.
  9. 关闭mysql服务的正确方法
  10. 查看mysql所对应的socket的位置:netstat -ln | grep mysql
  11. 官方的Mysql客户端连服务器端出错问题解析 5.4.7. Causes of Access-Denied Errors
  12. MySQL 5.1 Reference Manual

本文链接地址:非root权限安装Mysql