如何将mysql运行在非默认目录(/usr/local/mysql)中

本文以新加一个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

经验分享 程序员 微信小程序 职场和发展