FC7安装MySQL笔记

来源:互联网 发布:windows 日志分析 编辑:程序博客网 时间:2024/04/30 13:21

---------------------------------
纯属个人记录,不欢迎讨论,不好意思
---------------------------------
一直青睐从压缩包安装MySQL,在Windows下很简单.zip直接解压就好(Windows的权限管理实在是弱--||)。但是FC7下通过.tar.gz解压却启动不了,无奈之下从MySQL官方文档入手,开始了安装历程:

一、前驱准备
1. 为mysqld增加一个登录用户和组:

  shell> groupadd mysql

  shell> useradd -g mysql mysql

2. 进入安装目录,以/usr/local为例,解压.tar.gz二进制分发版。

  shell> gunzip <  /path/to/mysql-VERSION-OS.tar.gz | tar xvf -

  shell> ln -s  full-path-to-mysql-VERSION-OS mysql

  或者:

  shell> tar zxvf /path/to/mysql-VERSION-OS.tar.gz

3. 在mysql目录下,你会在mysql目录下发现几个文件和子目录,对安装目的最重要的是“bin”和“scripts”子目录。

·         bin

这个目录包含客户端程序和服务器,你应该把这个目录的完整路径加到PATH环境变量,以便shell能正确的找到MySQL程序。请参见附录F:环境变量。

·         scripts

这个目录包含mysql_install_db脚本,用来初始化mysql数据库的 授权表,其中贮存了服务器访问允许。

Note: 如果还没有安装MySQL,必须创建MySQL授权表:
  shell> scripts/mysql_install_db --user=mysql
4. 将程序二进制的所有权改为root,数据目录的所有权改为运行mysqld  的用户。如果位于安装目录(/usr/local/mysql)下,命令应为:

 shell> chown -R root  .

 shell> chown -R mysql data

 shell> chgrp -R mysql .
第一个命令将文件的所有属性改为root用户。第二个命令将数据目录的所有属性改为mysql用户。第三个命令将组属性改为mysql组。

5. 到这里,按照MySQL的文档,服务器便可以启动:

  shell> bin/mysqld_safe --user=mysql &
 但是,在FC7下,问题便出现了,提示如下信息,无法启动服务器。
-------------------------------------------------------------------------
nohup: ignoring input and redirecting stderr to stdout
Starting mysqld daemon with databases from /var/lib/mysql
STOPPING server from pid file /var/run/mysqld/mysqld.pid
071030 02:28:14  mysqld ended
------------------------------------------------------------------------------
问题出现最初没有查看日志(以后要养成看日志的习惯!!)
---------------------------------------------------------------------
 071030 14:23:56  mysqld started
 nohup: ignoring input
 071030 14:23:56  InnoDB: Operating system error number 13 in a file operation.
 InnoDB: The error means mysqld does not have the access rights to
 InnoDB: the directory.
 InnoDB: File name ./ibdata1
 InnoDB: File operation call: 'create'.
 InnoDB: Cannot continue operation.
 071030 14:23:56  mysqld ended
---------------------------------------------------------------------------
通过查看/var/log/mysqld.log基本确定是权限的问题,修改/var/lib/mysql/下的这几个文件权限:
ibdata1 ib_logfile0 ib_logfile1
 shell> chmod 766 /var/lib/mysql/ib*

mysql client默认使用/tmp/mysql.sock启动socket,但是/tmp/mysql.sock不存在,mysql.sock在/var/lib/mysql/mysql.sock,所以或者创建链接指向实际mysql.sock,或者更改mysql client的默认设置。
1. 在/tmp下创建指向/var/lib/mysql/mysql.sock的链接。
 ln -s /var/lib/mysql/mysql.sock /tmp/mysql.sock
2. 更好mysql client配置(/etc/my.cnf)
 编辑/etc/my.cnf,加入client配置。
 [client]
 socket=/var/lib/mysql/mysql.sock
 

 

 

 

 

 

原创粉丝点击