Mysql安装环境简介:

最近在做MHA。已经安装完毕heartbeat和drbd,现在准备安装Mysql。

Mysql安装目录:/opt/mysql

Mysql数据目录:/data/mysql

备注:/data目录实际是drbd需要同步到备节点的磁盘分区

[root@mysql1 src]# df -h

Filesystem     Size  Used Avail Use% Mounted on

/dev/sda2      9.5G  2.0G  7.1G 22% /

tmpfs          932M     0  932M  0% /dev/shm

/dev/sda1      190M   58M  123M 32% /boot

/dev/drbd0       19G 832M   17G   5% /data

一、Mysql免编译安装(大家可以直接复制在命令行执行或保存至shell脚本)

#1、解压配置

yum install -y libaio-devel

cd /usr/local/src

[ ! -f mysql-5.5.49-linux2.6-x86_64.tar.gz] && \

wget http://mirrors.sohu.com/mysql/MySQL-5.5/mysql-5.5.49-linux2.6-x86_64.tar.gz

tar zxf mysql-5.5.49-linux2.6-x86_64.tar.gz

mkdir /opt/

mv mysql-5.5.49-linux2.6-x86_64/opt/mysql-5.5.49

ln -s /opt/mysql-5.5.49  /opt/mysql

#2、创建用户

if ! id mysql;then

useradd mysql -s /sbin/nologin -M

fi

#可以减写:! id mysql && useradd mysql -s /sbin/nologin -M ####

#还有一种***子放屁的做法。

#groupadd mysql

#useradd -g mysql-M mysql

#用useradd mysql时就会创建mysql组,搞不懂为什么还先添加组

#3、初始化数据库,单实例启动

/opt/mysql/scripts/mysql_install_db --datadir=/data/mysql --basedir=/opt/mysql --user=mysql

cp /etc/my.cnf  /etc/my.cnf.ori

grep -Ev "#|^$" /opt/mysql/support-files/my-innodb-heavy-4G.cnf  > /etc/my.cnf

cp /opt/mysql/support-files/mysql.server /etc/init.d/mysqld

chkconfig mysqld on

#chmod +x /etc/init.d/mysqld (默认已有x权限)

#4、添加环境变量

echo "PATH=/opt/mysql/bin:$PATH" >> /etc/profile

. /etc/profile

#4、修改/etc/my.cnf或/etc/init.d/mysqld (暂时不修改,让脚本启动报错)

basedir=/opt/mysql

datadir=/data/mysql

***************************************************************************************

1、安装错误

[root@mysql1 src]#/opt/mysql/scripts/mysql_install_db --datadir=/data/mysql --basedir=/opt/mysql--user=mysql

Installing MySQL system tables...

/opt/mysql/bin/mysqld: errorwhile loading shared libraries: libaio.so.1: cannot open shared object file: Nosuch file or directory

解决:yum install -y libaio-devel

2、启动报错1:没指定basedir和datadir

[root@mysql1 src]#service mysqld start

/etc/init.d/mysqld: line 256: my_print_defaults: command notfound

/etc/init.d/mysqld: line 276: cd: /usr/local/mysql: No suchfile or directory

Starting MySQL ERROR!Couldn't find MySQL server (/usr/local/mysql/bin/mysqld_safe)

3、启动报错2

如果指定了basedir=/opt/mysql,但datadir=  为空时,启动会报错。

[root@mysql1 src]#service mysqld restart

ERROR! MySQL server PID file could not befound!

Starting MySQL.ERROR! The server quit without updating PID file (/opt/mysql/data/mysql1.pid).

[root@mysql1 src]#vi /etc/init.d/mysqld

4、启动报错3

也是basedir和datadir都没指定

[root@mysql1 src]#service mysqld restart

/etc/init.d/mysqld:line 256: my_print_defaults: command not found

/etc/init.d/mysqld:line 256: my_print_defaults: command not found

ERROR! MySQL server PID file could not befound!

/etc/init.d/mysqld:line 256: my_print_defaults: command not found

/etc/init.d/mysqld:line 276: cd: /usr/local/mysql: No such file or directory

Starting MySQLERROR! Couldn't find MySQL server (/usr/local/mysql/bin/mysqld_safe)

***********************************************************************************

前几天解决了生产环境的脚本报错的问题,现把报错原理分析总结下:

请看下面/etc/init.d/mysqld的启动脚本加粗部分解释。

# If you install MySQL on some other placesthan /usr/local/mysql, then you

# have to do one of the following things for thisscript to work:

#

# - Run thisscript from within the MySQL installation directory

# - Create a/etc/my.cnf file with the following information:

#  [mysqld]

#  basedir=

# - Add the aboveto any other configuration file (for example ~/.my.ini)

#   and copy my_print_defaults to /usr/bin

# - Add the pathto the mysql-installation-directory to the basedir variable

#   below.

#

# If you want toaffect other MySQL variables, you should make your changes

# in the/etc/my.cnf, ~/.my.cnf or other MySQL configuration files.

# If you changebase dir, you must also change datadir. These may get

# If you changebase dir, you must also change datadir. These may get

# overwritten bysettings in the MySQL configuration files.

basedir=

datadir=

# Default value,in seconds, afterwhich the script should timeout waiting

# for serverstart.

# Value here isoverriden by value in my.cnf.

# 0 means don'twait at all

# Negative numbersmean to wait indefinitely

service_startup_timeout=900

# Lock directoryfor RedHat / SuSE.

lockdir='/var/lock/subsys'

lock_file_path="$lockdir/mysql"

# The followingvariables are only set for letting mysql.server find things.

# Set somedefaults

mysqld_pid_file_path=

if test -z "$basedir"

then

basedir=/usr/local/mysql

bindir=/usr/local/mysql/bin

if test -z"$datadir"

then

datadir=/usr/local/mysql/data

fi

sbindir=/usr/local/mysql/bin

libexecdir=/usr/local/mysql/bin

else

bindir="$basedir/bin"

if test -z"$datadir"

else

bindir="$basedir/bin"

if test -z"$datadir"

then

datadir="$basedir/data"

fi

sbindir="$basedir/sbin"

libexecdir="$basedir/libexec"

fi

翻译:

1、如果basedir没有指定mysql安装路径,启动脚本就会以/usr/local/mysql做为安装路径启动。所以mysql没有安装在/usr/local下,启动必失败

2、如果basedir=/opt/mysql指定了mysql安装路径,并且mysql安装的路径是在/opt/mysql情况下。但datadir= 为空时,启动脚本会将$basedir/data(即/opt/mysql/data)做为mysql的数据目录。平时我们习惯将data目录放在/data/mysql下。此时启动会报错:

Starting MySQL. ERROR! The server quit without updatingPID file (/opt/mysql/data/mysql1.pid).

3、总结:用/etc/init.d/mysql启动时,最好在/etc/init.d/mysqld里设置basedir和datadir的值。或者在/etc/my.cnf 里[mysqld]下添加

[mysqld]

#port           = 3306

socket          = /tmp/mysql.sock

basedir=/opt/mysql

datadir=/data/mysql

不知道有没说明白。 建议大家再看看mysql启动脚本的文件。

心得:最近mysql遇到不少问题,庆幸大部分出错都能通过日志在百度上搜索出来。说明mysql使用的火热程度及大家的分享精神

mysql5.5编译安装脚本_mysql5.5 免编译安装及脚本启动报错深入相关推荐

  1. slackware12.0 安装AdobeReader_chs-7.0.9-1.i386.tar.gz后程序启动报错解决?

    在Slackware12.0上安装AdobeReader_chs-7.0.9-1.i386.tar.gz,安装成功后,在终端窗口中运行acroread,会不停的出现 expr: 语法错误 expr: ...

  2. mysql5.5 免编译安装及脚本启动报错深入

    Mysql安装环境简介: 最近在做MHA.已经安装完毕heartbeat和drbd,现在准备安装Mysql. Mysql安装目录:/opt/mysql Mysql数据目录:/data/mysql 备注 ...

  3. rpm安装mysql报错_【CentOS-65】通过rpm包安装mysql57解决了server报错和mysqld启动报错的问题...

    [CentOS-6.5]通过rpm包安装mysql5.7(解决了server包安装报错和mysqld启动报错的问题) 一.官网下载rpm包二.安装 wget三.检查是否已有数据库四.在linux在解压 ...

  4. Manjaro安装有道词典,启动报错解决

    文章目录 问题 解决过程 总结 问题 最近鼓捣scrcpy投屏手机的时候,都是去官方仓库看readme,全英文文档,总有些不认识的单词,于是想着整个词典,就想到了有道词典.安装过程很顺利,结果安装完之 ...

  5. VS中编译带Qt的他人项目,环境搭建及解决报错

    提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 VS中编译带Qt的他人项目,环境搭建及解决报错 一.安装VS及Qt及Qt VS Tools 二.报错及解决办法 1.未能找到程序集&q ...

  6. mysql安装教程博音网_RTSP视频平台EasyNVR使用mysql数据源启动报错unknow drivermysql优化...

    原标题:RTSP视频平台EasyNVR使用mysql数据源启动报错unknow driver"mysql"优化 我们上一篇讲了TSINGSEE青犀视频开发的视频平台默认都是使用的s ...

  7. 安装TensorRT,然后导入uff库包的时候报错:ImportError: ERROR: Failed to import module(cannot import name ‘GraphDef`)

    欢迎大家关注笔者,你的关注是我持续更博的最大动力 原创文章,转载告知,盗版必究 安装TensorRT,然后导入uff库包的时候报错:ImportError: ERROR: Failed to impo ...

  8. u盘安装linux启动报错,U盘安装centos7,启动报错

    通过U盘安装centos7的时候,启动报错,找不到安装媒介,解决方法. /dev/root does not exits. centos7的iso文件是:CentOS-7-x86_64-DVD-151 ...

  9. vue项目dist编译文件部署到服务器:页面空白、F5刷新报错404、403报错、等等bug - 总结篇

    文章目录 问题一. vue编译打包dist文件之后部署到线上服务器 ,访问页面却是空白? 问题二.如果不是空白,页面F5之后就又变成空白? 以Nginx服务器为例,(如下图FTP所示) `404报错: ...

最新文章

  1. 【spring教程之中的一个】创建一个最简单的spring样例
  2. tf.data.Dataset.from_tensor_slices() 详解
  3. 全流程解读:建立销售和营销模型的 9 个步骤
  4. Linux SSH基础
  5. 基于mxnet的Regression问题Kaggle比赛代码框架
  6. 桌面版应用_类Jupyter notebook编辑器桌面版应用nteract
  7. Debian下配置iSCSI Target。
  8. 深交所再推跨市场ETF交易模式创新,助力ETF发展
  9. windows平台使用Docker搭建分布式hadoop集群
  10. Day12:使用正则表达式
  11. 《C++ Primer 第5版》-13.3交换操作-康奈尔笔记
  12. [软件测试] - No.1 Fault Error Failure 区别
  13. 怎么查看笔记本内存条型号_笔记本内存条型号简介以及查看方法【图文教程】...
  14. WGestures全局鼠标手势设置指南
  15. 小程序(原生) 引入weUI组件
  16. /etc/profile 和~/.bash_profile区别
  17. 模型动态测试工具 TPT 18 新版本上线,助力测试效率更快一步
  18. 干掉PPT!现场编码的职级晋升答辩你参加过么?
  19. webpack中利用eslint对js进行代码格式检校
  20. 笔记本扩展屏时,外接显示器输入不支持的解决方案

热门文章

  1. C++PrimerPlus学习——第七章编程练习
  2. 电脑显示器闪屏_Win7系统电脑显示器屏幕闪屏的解决办法
  3. mysql to data_mysql str_to_date 字符串转换为日期
  4. 微型计算机主机箱内的所有部件均由大规模,2012年自考《计算机应用基础》模拟试题...
  5. 怎么看Windows11系统是激活的 Windows11检查激活状态方法
  6. 手机优酷怎么删除自己发的弹幕
  7. win10系统进入监护人模式的方法
  8. 光功率 博科交换机_如何将交换机40G QSFP+与10G SFP+端口互连?
  9. springBoot 通过使用log4j2
  10. angularjs input标签用一个日期插件后数据不能双向绑定了_微信如何定时发朋友圈?(最方便最好用的办法!)...