linux下mysql的安装

时间:2021-08-16 10:23:52

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等命令的情况。