重庆分公司,新征程启航
为企业提供网站建设、域名注册、服务器等服务
一、mysql_install_db说明
成都创新互联专注于万年企业网站建设,成都响应式网站建设公司,电子商务商城网站建设。万年网站建设公司,为万年等地区提供建站服务。全流程按需网站制作,专业设计,全程项目跟踪,成都创新互联专业和态度为您提供的服务
当MySQL的系统库(mysql系统库)发生故障或需要新加一个mysql实例时,需要初始化mysql数据库。
需要使用的命令:/usr/local/mysql/bin/mysql_install_db
#/usr/local/mysql/bin/mysql_install_db --help 可以查看帮助信息如下
Usage: /usr/local/mysql/bin/mysql_install_db [OPTIONS]
--basedir=path The path to the MySQL installation directory.
--cross-bootstrap For internal use. Used when building the MySQL system
tables on a different host than the target.
--datadir=path The path to the MySQL data directory.
--force Causes mysql_install_db to run even if DNS does not
work. In that case, grant table entries that normally
use hostnames will use IP addresses.
--ldata=path The path to the MySQL data directory.
--rpm For internal use. This option is used by RPM files
during the MySQL installation process.
--skip-name-resolve Use IP addresses rather than hostnames when creating
grant table entries. This option can be useful if
your DNS does not work.
--srcdir=path For internal use. The directory under which
mysql_install_db looks for support files such as the
error message file and the file for popoulating the
help tables.
--user=user_name The login username to use for running mysqld. Files
and directories created by mysqld will be owned by this
user. You must be root to use this option. By default
mysqld runs using your current login name and files and
directories that it creates will be owned by you.
All other options are passed to the mysqld program
除了支持以上的参数,还支持mysqld的参数。
二、举例:
本文以新加一个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
复制一个mysql配置文件my.cnf到/data1/mysql_3308目录下
#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
......其他略
确保配置文件无误。
运行下面命令进行数据库的初始化:
#/usr/local/mysql/bin/mysql_install_db --defaults-file=/data1/mysql_3308/my.cnf --datadir=/data1/mysql_3308/data
完成后新的3308数据库就初始化好了,如果有报错,则按照报错的提示查看报错日志,一般情况下都是my.cnf配置文件的问题,修正后即可。
三、启动新mysql
启动3308端口的mysql服务
#/usr/local/mysql/bin/mysqld_safe --defaults-file=/data1/mysql_3309/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'
1、双击进入安装 2、在协议许可(License Agreement)界面,勾选“I accept the license terms”,点击“Next”。 3、在检查更新信息(Find latest products)界面,勾选“Skip the check for updates(no re中国mended)”跳过检查,然后点击“Next”。 4、在选择安装类型(Choosing a Setup Type)界面,根据安装需求选择安装类型(推荐默认开发版本),设置MySQL安装路径和数据存放路径,最后点击“Next”。 5、在检查要求(Check Requirements)界面,点击“Next”。 6、安装进度(Installation progress)界面,点击“Execute”执行。 7、等待安装进度完毕,点击“Next”。 8、进入配置概述(Configuration Overview)界面,点击“Next”。 9、在MySQL服务配置(MySQL Server Configuration)界面,默认不做修改,点击“Next”。 10、设置根账户(root账户)密码。 11、添加(非根)用户账户。其目的是便于数据库权限管理,为远程访问者提供安全账户。
初始化mysql数据库,在shell中运行以下命令:
cd /usr/local/mysql
mkdir sock
cd /usr/local/mysql/bin
初始化数据库
./mysql_install_db--user=mysql --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data
或者# mysqld --initialize
在docker中有一个mysql服务,其数据文件是挂在在主机外面的文件,在docker中的root有访问该数据文件的权限,但是docker中mysql访问数据文件的时候提示权限不足,于是只有以root用户来启动mysql了。
数据初始化:
mysql_install_db --user=root --explicit_defaults_for_timestamp=111
初始化后以root用户启动
mysqld --user=root --explicit_defaults_for_timestamp=111
mysql启动正常。
启动方式主要有以下三种:
1、使用systemctl 启动 systemctl start mysqld
2、使用脚本启动 /etc/inint.d/mysqld start
3、使用safe_mysqld或mysqld --user=mysql启动
关闭方式也有以下三种:
1、使用systemctl 关闭 systemctl stop mysqld
2、使用脚本关闭 /etc/inint.d/mysqld stop
3、mysqladmin shutdown
注意:使用safe_mysqld或mysqld --user=mysql启动的服务,只能通过mysqladmin shutdown关闭,不能通过systemctl 或脚本关闭。
mysqladmin shutdown可关闭以上三种服务。脚本可关闭systemctl开启的服务,同样systemctl也可关闭脚本开
1、停止mysql服务
2、删除mysql的data目录下的,除mysql这个目录外的其他目录(为保险期间,先移走)
3、重启myql即可
-----------------------------------
呵呵,放松,一切都会好起来的!