mysql_istall_db

mysql_istall_db说明

安装完mysql server时,一般要执行这个脚本对数据库初始化.运行这个脚本会初始化mysql的data目录,并创建那些系统表.同样也会初始化系统表空间并且关联innodb表与数据结构.

用法示例

./mysql_istall_db --user=mysql --basedir=/usr/local/mysql --datadir=/data/mysql3306

  • --user为mysqld服务的运行用户
  • --basedir--datadir则分别代表mysql的安装目录和数据存放目录

选项

  • help 显示帮助信息
  • --basedir=path mysql安装目录的路径
  • --builddir=path build目录的路径,用于out-of-source构建
  • --cross-bootstrap 供内部使用
  • --datadir=path mysql数据目录的路径
  • --defaults-extra-file=file_name 在读取全局选项文件和在读取用户选项文件之前,读取这个文件(选项文件),如果该文件不存在,将会抛出错误(仅限unix平台)
  • --defaults-file=file_name 用被提供的选项文件,如果该文件不存在,将会抛出错误
  • --force 当dns无法用时将通过ip地址代替
  • --keep-my-cnf 在5.6.20中被添加,mysql_install_db保存任何已经存在的my.cnf文件,并且不创建新的默认my.cnf文件.
  • --1data=path--datadir同义
  • --no-defaults 不读取任何选项文件,该选项在mysql_install_db启动时,若因为读取了未知的参数而启动失败时使用.
  • --random-passwords
    5.6.8中加入该选项,在unix平台,该选项在mysql安装时增添了更多安全性.程序会给root初始化一个随机密码.被写入.mysql_secret文件,并且放置在对应用户的home目录下,如果.mysql_secret文件已经存在,新密码信息会被追加上去,每一个密码都会有时间戳信息,该文件默认权限是600.并且没有匿名mysql用户存在.
    通过RPM新安装mysql并使用mysql_install_db时,将会默认调用--random-passwords选项.在5.6.9, solaris PKG新安装并且使用mysql_install_db时,同样也会调用--random-passwords.
    用二进制或者源码安装时,可以在使用mysql_install_db时手动的添加--random-passwords选项
  • --rpm 供内部使用
  • --skip-name-resolve 当创建授权表时,用IP地址而不是host名,这个选项在你的DNS不起作用时,非常有用.
  • --srcdir=path 供内部使用
  • --user=user_name 运行mysqld的系统用户名,通过mysqld创建的文件和目录的归属者将为该用户
  • --verbose verbose模式,打印更多关于这个程序的信息
  • windows 供内部使用

实例

以新加一个mysql实例为例.例如服务器上已经安装了3306端口的mysql服务,需要再启一个3308端口的mysql服务.假设mysql安装在/usr/local/mysql路径下,找一个磁盘空间剩余比较大的盘,如/data1, 把3308端口的mysql的数据保存在/data1下.

  • mkdir /data1/mysql_3308
  • mkdir /data1/mysql_3308/data
  • chown -R mysql:mysql /data1/mysql_3308
  1. 复制一个mysql配置文件my.cnf/data1/mysql_3308

  2. 修改配置文件,将端口和相关目录的都改为新的配置
    vi /data1/mysql_3308/my.cnf

    [client]
    character-set-server = utf8
    port    =3308
    socket  = /tmp/mysql_3308.sock
    
    [mysqld]
    user    =mysql
    port    =3308
    socket  = /tmp/mysql_3308.sock
    basedir = /usr/local/mysql
    datadir = /data1/mysql_3308/data
    log-error = /data1/mysql_3308/mysql_error.log
    pid-file = /data1/mysql_3308/mysql.pid
    ......其他略
    
  3. 确保配置文件无误,运行下面命令进行数据库的初始化
    ./mysql_install_db --defaults-file=/data1/mysql_3308/my.cnf --datadir=/data1/mysql_3308/data
    完成新的3308数据库的初始化,如果有报错,则按照报错的提示查看报错日志,一般情况下都是my.cnf配置文件的问题,修正后即可

  4. 启动新mysql

    • 启动3308端口的mysql服务
      ./mysqld_safe --defaults-file=/data1/mysql_3308/my.cnf
    • 检查是否启动
      ps aux | grep mysql
      如果有3308字样说明已经启动成功,可将启动命令加入/etc/rc.local随服务器启动
    • 新加的mysql没有设置root密码,可以通过下面命令设置root密码:
      /usr/local/mysql/bin/mysqladmin -S /tmp/mysql_3308.sock -u root password 'new password'
原文地址:https://www.cnblogs.com/zane-zong/p/6808339.html