Linux下mysql的安装
这几周开始学习mysql,还没开始体验mysql的SQL语句的艰辛,倒是在linux如何成功安装mysql上浪费了很大一段时间,历经艰辛终于到西天佛祖处取得“真经“。总结安装整个过程中,其中一些问题应该算是mysql安装中经常会遇到的问题,在此贴出,希望对以后需要安装mysql的同学有一些帮助。
由于对linux了解多基于以前ubuntu的destop,采用的也是最傻瓜的新立得的安装方式,这次在纯命令行下安装mysql一开始自然是谷歌百度,搜索到rpm方式,果断下了一个mysql的rpm包,不过安装过程却不断提示我确实XX.so文件,原来rpm这种安装方式关联的库文件太多,而并不是每台机器都会有相应的库文件。所以果断换思路!!!
一番捣鼓,且经人提示的情况下,发现了mysql源码安装的方式,二话不说到网上下了个mysql-5.0.22.tar.gz,贴上源码安装步骤如下:
一、 源码安装方式
1. 解压安装包:
Shell>tar –zxvf mysql-5.0.22.tar.gz
该命令回车后就是不断的刷屏,解压完毕后你会发现目录下多了个mysql-5.0.22目录。
2. 添加mysql的用户和组
添加组:shell>groupaddXXX(在此以groupadd mysql为例)
添加用户并把该用户添加到mysql组:shell>useradd –g mysql XXX(此依旧以mysql为例子,即建用户shell>mysql useradd –g mysql mysql)
3. 进入解压出来的目录
Shell>cd mysql-5.0.22
Ls后你会发现很多的文件,其中的configure显得格外耀眼。
4. Configure一下吧(设置参数)
Configure用来对mysql的安装进行一些设置,我的安装方式如下:
Shell>./configure --prefix=/user/local/mysql --with-charset=gbk --with-extra-charsets=all
参数说明:
--prefix mysql程序的安装目录
--with-charset mysql的默认字符集
--with-extra-charsets mysql附带的字符集
--localstatedir 数据的目录,缺省会在安装目录下的var目录
这么多参数我记不清楚肿么办? 究极一招:configure --help 所有的参数及其含义都可以轻松的看出来。
5. 开始编译安装
设置好相关参数后便可进行编译和安装其方法相当简单,方法如下:
Shell>make&& make install
回车又是刷屏了,而且会刷很久,这段时间可以喝杯茶了
6. 初始化数据库
此时需要进入mysql程序的安装目录,按我的安装方式该目录为/usr/local/mysql下,在该目录下的share/mysql/下会几个配置文件,不过大多数采用my-medium.cnf文件。需要将my-medium.cnf文件复制到/etc下,或者你想要的目录下,二者选一,我采用将该文件赋值到/usr/local/mysql下的方式
Shell>cpshare/mysql/my-medium.cnf my.cnf
安装数据库方法为(在/usr/local/mysql目录下):
Shell>./bin/mysql_install_db --defaults-file=/usr/local/mysql/my.cnf --user=mysql
参数说明:
--defaults-file 安装数据库读取的配置文件,缺省从/etc/my-medium.cnf下读取
--user 数据库的用户
对参数不清晰的已经采用--help的方式把!!!
安装检查,查看安装目录下var目录(另外设置数据目录的需到该目录查看)下是否有mysql test目录,如有则初始化数据库成功,没有则得检查出错信息进行相应的排错。
7. 安装完后赋权
由于安装过程linux所用的用户可能并未用该mysql用户,所以需要为相应的目录赋权限。
依旧在/usr/local/mysql目录下
改变数据目录的文件主:shell>chown–R mysql(用户名) var
改变目录所属的组名:shell>chgrp–R mysql(组名) . (.代表当前目录)
8. 启动数据库
Shell>./bin/mysqld_safe--defaults-files=/usr/local/mysql/my.cnf --user=mysql &
启动mysqld进程为守护进程,其中mysql与&直接有一个空格。接着在任何目录下输入mysql命令,如能正常进入数据库则mysql安装成功。
9. 设置mysql服务并自启动
步骤:
1) Shell>cpshare/mysql/mysql.server /etc/init.d/mysql
将mysql.server复制一份到/etc/init.d/目录下并命令为mysql
2) 为/etc/init.d/mysql赋权限
Shell>chmod 755 /etc/init.d/mysql
3) 利用chkconfig添加服务
Chkconfig --add mysql
10. 常见错误小总结
安装过程中常会遇到的问题有:
1) make&& make install 后提示没有XXX.so文件,即缺少某个XXX.so文件,此时可以在本机上利用find命令搜索是否有该so文件,shell>find/ -name XXX.so 在/目录下搜索XXX.so文件,如果搜索到该文件可将该文件cp到usr/lib(常规下是复制到这个目录下即可,具体可通过ldd 命令来查看某个动态可执行文件需要加载的so文件及该so文件搜索的目录)
2) 安装步骤configure,make && make install 启动数据库等均成功,利用mysql进入数据库管理时出现如下错误提示:Can't connect to localMySQL server through socket '/tmp/mysql.sock' (2),/tmp/mysql.sock文件不存在。
解决方法1:首先检查mysql服务是否已经启动,ps aux | grep mysql,如果没有启动,采用启动数据库的步骤来启动该服务,接着继续shell> ps aux | grep mysql 来查看mysql服务的相关信息,着重注意mysql服务中的--socket的路径为哪个路径,举个例子--socket=/var/run/mysqld/mysqld.sock,则可通过建立链接的方式shell>ln –s /var/run/mysqld/mysql.sock /tmp/mysql.sock,然后重启mysql数据库,如果还是不行就采用解决方法2吧。
解决方法2:直接从另一台装好了mysql的机器下复制一个msyql.sock到/tmp目录下,如果还是不行那你估计只有再将整个安装过程跑一遍了。
二、 拷贝文件安装方式
如果在源码安装的过程中总是提示确实XXX库文件,就考虑这种安装方式吧~
1. 拷贝文件
如果rsync或ssh命令可用就利用该命令在两台及其直接拷贝文件吧,具体参数可rsync --help 和ssh –h 来查看具体的参数信息。以下为我常用的rsync拷贝命令shell>rsync –avz user@ip:src dest从该ip的用户机下拷贝src目录到dest目录下。如果rsync ssh不可用,就先将mysql目录打包压缩下到本机,再通过securcrt上传到目的机的相应目录下解包。
2. Mysql的初始化操作
拷贝安装目录后相当于是make&& make install后的结果,接下来所要进行的步骤同6-9,需要对文件目录等进行赋权,初始化数据库,启动数据库,设置mysql服务并自启动等。尤其需要注意的是需要将mysql.server复制一份到/etc/init.d/目录下并命名为mysql同时记得为chmod /etc/init.d/mysql赋权。不然可能出现用不了mysqldump,mysqladmin等命令的情况。