知识大全 Linux下解决MySQL服务的两个基本问题

Posted 命令

篇首语:水往下流,人争上游。本文由小常识网(cha138.com)小编为大家整理,主要介绍了知识大全 Linux下解决MySQL服务的两个基本问题相关的知识,希望对你有一定的参考价值。

Linux下解决MySQL服务的两个基本问题  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!

  使用mysql基本基本上会遇到主要的两个问题

   第一次起动mysql是没有问题的 对mysql做了一些操作 特别是删除mysql中一些不要的帐号后 重新起动mysql会遇到这样的问题

    #/etc/init d/mysqld restartstopping mysql     [ok]Timeout error occurred trying to start MySQL Daemon   [failure]

  但是这个时候mysql实际上已经起动了 因为用netstat ln命令去看 端口已经起动 使用mysql u root p password也能连接到数据库

  这实际上是mysql x的一个bug(具体可以去看mysql的bugzilla和redhat的bugzilla)

  是什么原因导致连接超时呢?

  我们不妨先看看/etc/init d/mysqld起动脚本是如何工作的 注意下面的一段

  

  # If you ve removed anonymous users this line must be changed to# use a user that is allowed to ping mysqld ping= /usr/bin/mysqladmin uUNKNOWN_MYSQL_USER ping # Spin for a maximum of ten seconds waiting for the server to e up        if [ $ret eq ]; then            for x in ; do            if [ n `$ping > /dev/null` ]; then                    break;            else                    sleep ;            fi            done

  if !([ n `$ping > /dev/null` ]); then                    echo Timeout error occurred trying to start MySQLDaemon                     action $ Starting $prog: /bin/false            else                    action $ Starting $prog: /bin/true            fi        else            action $ Starting $prog: /bin/false        fi        [ $ret eq ] && touch /var/lock/subsys/mysqld        return $ret

  我们看到 脚本判断mysql是否起动 使用的是mysqladmin ping命令

  而这个命令想要正确执行是需要能够登录mysql的 现在一些默认帐号已经删除 而且其它帐号已经设置了密码(默认没有设置密码) 于是它没有办法连接到mysql

  不妨使用下面的命令测试一下

    #mysqladmin u root ppassword pingmysql alive

  当你提供了帐号和密码时 它的ping命令就可以正确执行了

  这个bug在mysql新出的mysql x可以解决

  但是RH 到FC 一直使用的是mysql x(不过mysql官方好象才推出mysql FC需要考虑问题性)

  于是我用了下面的办法临时解决

  a)建立一个帐号 不设置密码 不给任何权限     b)修改/etc/init d/mysqld

  下面我给出具体操作

  

  #mysql u root p passwdmysql>GRANT select ON test * TO daemon@localhost

  mysql>revoke select on test * from daemon@localhost

  打开/etc/init d/mysqld

  把下面这行

  ping= /usr/bin/mysqladmin uUNKNOWN_MYSQL_USER ping

  修改为

  ping= /usr/bin/mysqladmin udaemon ping

  保存 退出

  重新起动mysql

  

  #/etc/init d/mysqld restartStopping MySQL:                                            [  OK  ]Starting MySQL:                                            [  OK  ]

  如果你的第二行仍然是failure的话 再执行下面的命令

  #/etc/init d/mysqld start

  这时应该式ok了

  如果这样可以ok的话

  那么你需要修改/etc/init d/mysqld

  在restart函数的start后面再加一个start就可了

   即使刚安装的mysql再起动后 去看日志 给给出下面的这些信息

    Cannot initialize InnoDB as innodb_data_file_path is not set If you do not want to use transactional InnoDB tables add a lineskip innodbto the [mysqld] section of init parameters in your for my ini If you want to use InnoDB tables add to the [mysqld]section for example innodb_data_file_path = ibdata : M:autoextendBut to get good performance you should adjust for your hardwarethe InnoDB startup options listed in section at

  这是因为默认的数据库起动脚本需要加载innodb数据库 但是mysql在做初始话时并没有初始化时 并没有加载这样的数据库

  因此这里有两种解决办法:使用和不使用innodb

  我们先看不使用innodb的办法

  其实这个方法就是跳过innodb的方法

  在/etc/f文件的mysqld区域增加一行

  skip innodb就可以了

  如果我们需要使用innodb呢?

  那么可在/etc/f文件的mysqld区域增加下面几行

    innodb_data_home_dir = /var/lib/mysql/innodb_data_file_path = ibdata : M:autoextendinnodb_log_group_home_dir = /var/lib/mysql/innodb_log_arch_dir = /var/lib/mysql/set variable = innodb_buffer_pool_size= Mset variable = innodb_additional_mem_pool_size= Mset variable = innodb_log_file_size= Mset variable = innodb_log_buffer_size= Minnodb_flush_log_at_trx_mit= set variable = innodb_lock_wait_timeout=

  保存 退出 重启起动mysql 再去看日志

cha138/Article/program/MySQL/201311/29509

相关参考

知识大全 Linux下C连接MySQL出现错误解决一例

Linux下C连接MySQL出现错误解决一例  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  在L

知识大全 Linux下MySQL的管理与配置

Linux下MySQL的管理与配置  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  MySQL服务

知识大全 Linux下MySQL的一些基本使用方法

Linux下MySQL的一些基本使用方法  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  ]Lin

知识大全 Linux环境MySQL服务器级优化讲解

Linux环境MySQL服务器级优化讲解  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  摘要本节

知识大全 linux下mysql命令

  一总结一下  linux下启动mysql的命令  mysqladminstart  /ect/initd/mysqlstart(前面为mysql的安装路径)  linux下重启mysql的命令  

知识大全 修改Linux下MySQL编码

修改Linux下MySQL编码  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  默认登录mysql

知识大全 Linux下MySql免安装

Linux下MySql免安装  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  解压/usr/loc

知识大全 linux 下 MySQL源码包的安装

linux下MySQL源码包的安装  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  linux下M

知识大全 在Linux 环境下安装 Mysql

在Linux环境下安装Mysql  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  一引言  想使用

知识大全 linux系统下MYSQL备份恢复

linux系统下MYSQL备份恢复  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  数据库备份是非