运营战败的解决步骤,输入你安装apache所在的服务器地址
分类:热门新闻

本案例主要是讲关于mysql启动提示mysql.host 不存在,启动失败的解决步骤,有需碰到同样问题的朋友可以参考一下解决方法。

一、安装apache(http服务)

1.       下载mysql

但是对我第一次摸mysql,确实怎么也弄不懂的问题。好了闲话不多说 说一下我解决的过程:

  1. 从apache.org下载源码安装包

  2. 解压缩
    # tar zxf httpd-2.2.4.tar.gz
    # cd httpd-2.2.4

  3. 安装apache依赖包apr和apr-util,他们都在srclib目录中

在http://dev.mysql.com/downloads/mysql/ 官网上下载mysql-5.5.28-linux2.6-i686.tar.gz.

按照mysql的安装步骤:shell groupadd mysqlshell useradd -g mysql mysqlshell gunzip mysql-VERSION.tar.gz | tar -xvf -shell cd mysql-VERSIONshell ./configure --prefix=/usr/local/mysqlshell makeshell make installshell scripts/mysql_install_db --user=mysqlshell chown -R root /usr/local/mysqlshell chown -R mysql /usr/local/mysql/varshell chgrp -R mysql /usr/local/mysqlshell cp support-files/my-medium.cnf /etc/my.cnfshell /usr/local/mysql/bin/mysqld_safe --user=mysql

3.1 安装apr
# cd srclib/apr
# ./configure --prefix=/usr/local/apr
# make
# make install

2.       解压

这样标准进行下来是没有问题的,但在最后一步启动mysql的时候我希望将数据库的数据文件放在另外一个目录下面,启动命令修改为:shell/usr/local/mysql/bin/mysqld_safe --user=mysql --log-error=/u01/mysql/mysql_error/error --datadir=/u01/mysql/data

3.2 安装apr-util
# cd ../apr-util
# ./configure --prefix=/usr/local/apr-util --with-apr=/usr/local/apr
# make
# make install

   假如tar包在/home/zdw/software目录下

这个时候就出现问题了, 因为在进行初始化数据库权限表的那一步的时候默认创建的权限表在默认目录/usr/local/mysql/var下面,这就造成了,上面的错误无法找到 权限表:Can't open and lock privilege tables: Table 'mysql.host' doesn't exist

4.安装httpd
# cd ../../
# ./configure --prefix=/usr/local/httpd --with-apr=/usr/local/apr --with-apr-util=/usr/local/apr-util --enable-so --enable-rewrite
# make
# make install

#tar -xvf mysql-5.5.28-linux2.6-i686.tar.gz

解决办法 在运行初始化权限表的时候使用增加参数--datadir ,命令格式为:shell scripts/mysql_install_db --user=mysql --datadir=/u01/mysql/data 这样问题就解决了。 这样问题同样也会出现 你将自己的数据库的数据文件修改为别的目录的时候,因为你没有在相应的目录下创建数据库权限表,解决办法就是你重新运行mysql_install_db 文件,重新生成数据库权限表,但是相应的你也要重新建里用户,以及设置权限; 第二个办法应该将老的权限表的文件拷贝倒相应数据库表对应的目录先即可,但是第二个办法我没有用过只是根据自己的想象猜的。如果有高手请给确认一下是否正 确

--enable-so 支持DSO模式(动态模块加载方式)
--enable-rewrite 支持rewrite(地址重定向)

3.       移动到/usr/local/mysql

等这些都装完后,打开浏览器,输入你安装apache所在的服务器地址,看起来像这个样子:

#mv mysql-5.5.28-linux2.6-i686 /usr/local/

如果页面显示如下:
It works!

添加快捷方式mysql指向mysql-5.5.28-linux2.6-i686

恭喜你,apache安装成功了~

#ln -s mysql-5.5.28-linux2.6-i686/ mysql

 

4.       安装依赖的lib包:执行/usr/local/mysql/bin/mysqld,报错

二、安装mysql(数据库服务)

/usr/local/mysql/bin/mysqld: error while loading shared libraries: libaio.so.1: cannot               open shared object file: No such file or directory

1. 从mysql.com下载编译好的压缩包。我这里用的偷懒的方式,正式的安装还是用源码包自己编译安装的好。

使用apt-cache search libaio,找到如下软件源

  1. 解压缩
    # tar zxf mysql-5.0.45-linux-i686-glibc23.tar.gz

  2. 参考它的安装文档
    # more INSTALL-BINARY

libaio-dev - Linux kernel AIO access library - development files

可以看到里面有如下提示:
shell> groupadd mysql
shell> useradd -g mysql mysql
shell> cd /usr/local
shell> gunzip < /PATH/TO/MYSQL-VERSION-OS.tar.gz | tar xvf -
shell> ln -s FULL-PATH-TO-MYSQL-VERSION-OS mysql
shell> cd mysql
shell> chown -R mysql .
shell> chgrp -R mysql .
shell> scripts/mysql_install_db --user=mysql
shell> chown -R root .
shell> chown -R mysql data
shell> bin/mysqld_safe --user=mysql &
我们就按他提示的步骤来操作

libaio1 - Linux kernel AIO access library - shared library

  1. 添加mysql组及用户
    # groupadd mysql
    # useradd -g mysql mysql

  2. 移动目录
    # mv mysql-5.0.45-linux-i686-glibc23 /usr/local/mysql5
    # cd /usr/local/mysql5

  3. 修改权限
    # chown -R mysql .
    # chgrp -R mysql .

  4. 初始化配置文件及库文件
    # cp support-files/my-medium.cnf /etc/my.cnf
    # scripts/mysql_install_db --user=mysql

  5. 修改目录权限为root用户,仅data目录为mysql所有
    # chown -R root .
    # chown -R mysql data

  6. 启动mysql服务
    # bin/mysqld_safe --user=mysql &
    命令之后所带 & ,表示该命令以后台模式运行

libaio1-dbg - Linux kernel AIO access library - debugging symbols

看看我们的服务是否启动了
# ps axuw|grep mysql

使用#apt-get install libaio1 安装

如果提示如下类似的信息,那说明数据库安装成功:
root     21802  0.0  0.1  5224 1084 pts/0    S    21:13   0:00 /bin/sh ./bin/mysqld_safe --user=mysql
mysql    21828  0.8  1.3 114688 14428 pts/0  Sl   21:13   0:00 /usr/local/mysql5/bin/mysqld --basedir=/usr/local/mysql5 --datadir=/usr/local/mysql5/data --user=mysql --pid-file=/usr/local/mysql5/data/home.yz.com.pid --skip-external-locking --port=3306 --socket=/tmp/mysql.sock
root     21840  0.0  0.0  5272  656 pts/0    S+   21:15   0:00 grep mysql

5.       配置用户,目录

图片 1

#groupadd mysql

#useradd -r -g mysql mysql

#cd /usr/local/mysql

#chown -R mysql .

#chgrp -R mysql .

6.       初始化mysql

    假如当前目录为/usr/local/mysql

#scripts/mysql_install_db --user=mysql

7.       启动mysql

最简单的启动方式:

#/usr/local/mysql/bin/mysqld --user=mysql

默认情况下使用/usr/local/mysql/data作为mysql的数据目录,包括数据库文件,log日志。

常用的mysql启动参数:

/usr/local/mysql/bin/mysqld  --user=mysql --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data  --port=3306 --socket=/tmp/mysql.socks

推荐的启动mysql

#/usr/local/mysql/support-files/mysql.server start

启动完成之后用ps -ef |grep mysql 命令查看是否启动

8.       登录mysql

#/usr/local/mysql/bin/mysql -u root -p

默认密码为空

 

修改root密码

mysql>use mysql ;
mysql>update user set password=PASSWORD("123456") where user='root';
mysql>FLUSH PRIVILEGES;

9.       关闭mysql

最简单的方式

#killall mysqld

推荐的方式

#/usr/local/mysql/support-files/mysql.server stop

使用mysql.server stop关闭mysqld会销毁pid文件,并做容错操作,但是最后也是调用kill命令kill mysql。

 

关闭mysql,尽量不要用kill -9 mysql_pid或者是killall -9 mysql,否则mysql进程无法做退出处理,就可能会丢失数据,甚至导致表损坏。

 

10.   浅析mysql.server脚本的启动流程

mysql.server脚本可以看到在以下脚本调用mysqld_safe这个bash

$bindir/mysqld_safe --datadir="$datadir" --pid-file="$mysqld_pid_file_path" $other_args >/dev/null 2>&1 &

默认情况下,$bindir/mysqld_safe就是/usr/local/mysql/bin/mysqld_safe这个shell,我的本机的调用参数如下:

/bin/sh /usr/local/mysql/bin/mysqld_safe --datadir=/usr/local/mysql/data --pid-file=/usr/local/mysql/data/blue-pc.pid

而mysqld_safe也是一个shell,可以看到在这个脚本在初始化N多变量后,调用

eval_log_error "$cmd"

这个shell function最后就是调用

 #echo "Running mysqld: [$cmd]" eval "$cmd"

在我本机,这个$cmd就是

**/usr/local/mysql/bin/mysqld --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data --plugin-dir=/usr/local/mysql/lib/plugin --user=mysql --log-error=/usr/local/mysql/data/blue-pc.err --pid-file=/usr/local/mysql/data/blue-pc.pid

参考文章:
本文在Ubuntu11.04和Fedora14下测试成功。**

 

本文由威尼斯在线注册平台发布于热门新闻,转载请注明出处:运营战败的解决步骤,输入你安装apache所在的服务器地址

上一篇:威尼斯登录首页xinge = 最后日期 下一篇:没有了
猜你喜欢
热门排行
精彩图文