一台linux主机启动多个MySQL数据库的方法
今天来说下一台Linux主机如何启动4个MySQL数据库:
1.要确定你的机器上面已经安装MySQL,我的MySQL在/usr/loacl/ 下面:
cd /usr/local/mysql-5.7.18/ ll
2.进入/usr/loacl/data文件夹(没有自行创建),在data下分别创建四个文件夹,如 : 3307 3308 3309 3310:
mkdir data cd data mkdir 3307 mkdir 3308 mkdir 3309 mkdir 3310
3.在/usr/loacl/mysql-5.7.18/bin/下初始化数据库,指定到这四个文件夹:
./mysqld --initialize-insecure --basedir=/usr/local/mysql-5.7.18 --datadir=/usr/local/mysql-5.7.18/data/3307 --user=mysql ./mysqld --initialize-insecure --basedir=/usr/local/mysql-5.7.18 --datadir=/usr/local/mysql-5.7.18/data/3308 --user=mysql ./mysqld --initialize-insecure --basedir=/usr/local/mysql-5.7.18 --datadir=/usr/local/mysql-5.7.18/data/3309 --user=mysql ./mysqld --initialize-insecure --basedir=/usr/local/mysql-5.7.18 --datadir=/usr/local/mysql-5.7.18/data/3310 --user=mysql
其中initialize-insecure表示不生成mysql数据库root用户随机密码,即root密码为空
4.在3307 3308 3309 3310下分辨创建一个名为my.cof的文件,并插入配置内容,注意是每个文件夹下都创建:
cd /usr/local/mysql-5.7.18/data/3307/ mkdir my.conf vim my.cof ***插入下面内容*** [client] port = 3307 socker = /usr/local/mysql-5.7.18/data/3307/mysql.sock default-character-set=utf-8 [mysqld] port = 3307 socker = /usr/local/mysql-5.7.18/data/3307/mysql.sock datadir = /usr/local/mysql-5.7.18/data/3307 log-error = /usr/local/mysql-5.7.18/data/3307/error.log pid-file = /usr/local/mysql-5.7.18/data/3307/mysql.pid character-set-server=utf8 lower_case_table_names=1 autocommit=1
每个配置文件中的文件夹名自行修改,这里不做赘述。
port:端口号 3307
socker:IP和port
datadir:数据路径
log-error:错误文件文位置
pid-file :pid文件位置
character-set-server :字符集
lower_case_table_names:是否忽略表大小写 1为忽略
autocommit:自动提交 1为是
5.启动测试:
cd /usr/loacl/mysql-5.7.18/bin/ ./mysql_safe --defaults-file=/usr/loacl/mysql-5.7.18/data/3307/my.cnf & ./mysql_safe --defaults-file=/usr/loacl/mysql-5.7.18/data/3308/my.cnf & ./mysql_safe --defaults-file=/usr/loacl/mysql-5.7.18/data/3309/my.cnf & ./mysql_safe --defaults-file=/usr/loacl/mysql-5.7.18/data/3310/my.cnf &
其中 --defaults-file是指定配置文件,&表示后台启动
查询一下:
6.登陆:
./mysql -uroot -p -P3307 -h127.0.0.1 #注意在/usr/loacl/mysql-5.7.18/bin下执行
7.可以修改root密码:
alter user 'root'@'localhost' identified by 'xxx';
想要在用户界面远程登陆需要配置:
grant all privileges on *.* to root@'%' identified by 'xxx';
*.* : 其中第一个*表示所有数据库名,第二个*表示所有的数据库表
root@'%':root表示用户名,%表示ip地址,可以具体到某个ip 如:root@127.0.0.1
然后执行权限刷新:
flush privileges;
可以逐个数据库试一下 ^ _ ^。。