mysql_multi启动数据库
1.初始化数据库
在$mysql_base目录下,新增加存放data的文件夹,用mysql_install_db命令执行初始化
- [root@ora11g scripts]# ./mysql_install_db --help | less
- Usage: ./mysql_install_db [OPTIONS]
- --basedir=path The path to the MySQL installation directory.
- --builddir=path If using --srcdir with out-of-directory builds, you
- will need to set this to the location of the build
- directory where built files reside.
- --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.
- --defaults-extra-file=name
- Read this file after the global files are read.
- --defaults-file=name Only read default options from the given file name.
- --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.
- --help Display this help and exit.
- --ldata=path The path to the MySQL data directory. Same as --datadir.
- --no-defaults Don't read default options from any option file.
- --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 The path to the MySQL source directory. This option
- uses the compiled binaries and support files within the
- source tree, useful for if you don't want to install
- MySQL yet and just want to create the system 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
- [root@ora11g scripts]# ./mysql_install_db --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data2 --user=mysql
- Installing MySQL system tables...
- OK
- Filling help tables...
- OK
- To start mysqld at boot time you have to copy
- support-files/mysql.server to the right place for your system
- PLEASE REMEMBER TO SET A PASSWORD FOR THE MySQL root USER !
- To do so, start the server, then issue the following commands:
- /usr/local/mysql/bin/mysqladmin -u root password 'new-password'
- /usr/local/mysql/bin/mysqladmin -u root -h ora11g password 'new-password'
- Alternatively you can run:
- /usr/local/mysql/bin/mysql_secure_installation
- which will also give you the option of removing the test
- databases and anonymous user created by default. This is
- strongly recommended for production servers.
- See the manual for more instructions.
- You can start the MySQL daemon with:
- cd /usr/local/mysql ; /usr/local/mysql/bin/mysqld_safe &
- You can test the MySQL daemon with mysql-test-run.pl
- cd /usr/local/mysql/mysql-test ; perl mysql-test-run.pl
- Please report any problems at http://bugs.mysql.com/
- [root@ora11g scripts]#
同样,再初始化一个data3
修改my.cnf的配置,添加上multi的相关属性,如果不是很清楚需要添加什么的话,可以参考mult给的例子
- [root@ora11g ~]# mysqld_multi --example
- [mysqld_multi]
- mysqld = /usr/local/mysql/bin/mysqld_safe
- mysqladmin = /usr/local/mysql/bin/mysqladmin
- user = multi_admin
- password = my_password
- [mysqld2]
- socket = /tmp/mysql.sock2
- port =
- pid-file = /usr/local/mysql/mysqldata2/hostname.pid2
- datadir = /usr/local/mysql/mysqldata2
- language = /usr/local/mysql/share/mysql/english
- user = unix_user1
- [mysqld3]
- mysqld = /path/to/mysqld_safe
- ledir = /path/to/mysqld-binary/
- mysqladmin = /path/to/mysqladmin
- socket = /tmp/mysql.sock3
- port =
- pid-file = /usr/local/mysql/mysqldata3/hostname.pid3
- datadir = /usr/local/mysql/mysqldata3
- language = /usr/local/mysql/share/mysql/swedish
- user = unix_user2
- [mysqld4]
- socket = /tmp/mysql.sock4
- port =
- pid-file = /usr/local/mysql/mysqldata4/hostname.pid4
- datadir = /usr/local/mysql/mysqldata4
- language = /usr/local/mysql/share/mysql/estonia
- user = unix_user3
- [mysqld6]
- socket = /tmp/mysql.sock6
- port =
- pid-file = /usr/local/mysql/mysqldata6/hostname.pid6
- datadir = /usr/local/mysql/mysqldata6
- language = /usr/local/mysql/share/mysql/japanese
- user = unix_user4
- [root@ora11g ~]#
我的相关配置如下:
- [mysqld_multi]
- mysqld = /usr/local/mysql/bin/mysqld_safe
- mysqladmin = /usr/local/mysql/bin/mysqladmin
- user = test
- password = test
- # The MySQL server
- [mysqld3306]
- port =
- socket = /tmp/mysql3306.sock
- pid-file = /tmp/mysql3306.pid
- skip-external-locking
- key_buffer_size = 16K
- max_allowed_packet = 1M
- table_open_cache =
- sort_buffer_size = 64K
- read_buffer_size = 256K
- read_rnd_buffer_size = 256K
- net_buffer_length = 2K
- thread_stack = 128K
- basedir = /usr/local/mysql
- datadir = /usr/local/mysql/data
- server-
- [mysqld3307]
- port =
- socket = /tmp/mysql3307.sock
- pid-file = /tmp/mysql3307.pid
- skip-external-locking
- key_buffer_size = 16K
- max_allowed_packet = 1M
- table_open_cache =
- sort_buffer_size = 64K
- read_buffer_size = 256K
- read_rnd_buffer_size = 256K
- net_buffer_length = 2K
- thread_stack = 128K
- basedir = /usr/local/mysql
- datadir = /usr/local/mysql/data2
- server-
- [mysqld3308]
- port =
- socket = /tmp/mysql3308.sock
- pid-file = /tmp/mysql3308.pid
- skip-external-locking
- key_buffer_size = 16K
- max_allowed_packet = 1M
- table_open_cache =
- sort_buffer_size = 64K
- read_buffer_size = 256K
- read_rnd_buffer_size = 256K
- net_buffer_length = 2K
- thread_stack = 128K
- basedir = /usr/local/mysql
- datadir = /usr/local/mysql/data3
- server-
主要需要注意的几个参数是:[mysqld_multi],port,socket,pid-file和datadir。
配置好之后,就可以启动了。
- [root@ora11g bin]# ./mysqld_multi --defaults-
- [root@ora11g bin]# ps -ef | grep mysq;
- root : pts/ :: /bin/ --socket=/tmp/mysql3306.sock --pid- --sort_buffer_size=64K --read_buffer_size=256K --read_rnd_buffer_size=256K --net_buffer_length=2K --thread_stack=128K --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data --server-
- mysql : pts/ :: /usr/local/mysql/bin/mysqld --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data --plugin- -- --log-error=/usr/local/mysql/data/ora11g.err --pid-
- root : pts/ :: grep mysq
- [root@ora11g bin]# ps -ef | grep mysql
- root : pts/ :: /bin/ --socket=/tmp/mysql3306.sock --pid- --sort_buffer_size=64K --read_buffer_size=256K --read_rnd_buffer_size=256K --net_buffer_length=2K --thread_stack=128K --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data --server-
- mysql : pts/ :: /usr/local/mysql/bin/mysqld --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data --plugin- -- --log-error=/usr/local/mysql/data/ora11g.err --pid-
- root : pts/ :: grep mysql
- [root@ora11g bin]# ./mysqld_multi --defaults-
- [root@ora11g bin]# ./mysqld_multi --defaults-
- [root@ora11g bin]# ps -ef | grep mysql
- root : pts/ :: /bin/ --socket=/tmp/mysql3306.sock --pid- --sort_buffer_size=64K --read_buffer_size=256K --read_rnd_buffer_size=256K --net_buffer_length=2K --thread_stack=128K --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data --server-
- mysql : pts/ :: /usr/local/mysql/bin/mysqld --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data --plugin- -- --log-error=/usr/local/mysql/data/ora11g.err --pid-
- root : pts/ :: /bin/ --socket=/tmp/mysql3307.sock --pid- --sort_buffer_size=64K --read_buffer_size=256K --read_rnd_buffer_size=256K --net_buffer_length=2K --thread_stack=128K --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data2 --server-
- mysql : pts/ :: /usr/local/mysql/bin/mysqld --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data2 --plugin- -- --log-error=/usr/local/mysql/data2/ora11g.err --pid-
- root : pts/ :: /bin/ --socket=/tmp/mysql3308.sock --pid- --sort_buffer_size=64K --read_buffer_size=256K --read_rnd_buffer_size=256K --net_buffer_length=2K --thread_stack=128K --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data3 --server-
- mysql : pts/ :: /usr/local/mysql/bin/mysqld --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data3 --plugin- -- --log-error=/usr/local/mysql/data3/ora11g.err --pid-
- root : pts/ :: grep mysql
- [root@ora11g bin]#
中间有一个小插曲,因为我在安装mysql的时候,cmake . -DCMAKE_INSTALL_PREFIX=/usr/local/mysql -DMYSQL_DATADIR=/usr/local/mysql/data -DSYSCONFDIR=/etc\ ,当时制定的DMYSQL_DATADIR为mysqldata,所以在启动的时候,会报错:
- [root@ora11g share]# more mysqld_multi.log
- mysqld_multi log ::
- Starting MySQL servers
- :: [Warning] Can't create test file /usr/local/mysql/mysqldata/ora11g.lower-test
- :: [Warning] Can't create test file /usr/local/mysql/mysqldata/ora11g.lower-test
- /usr/local/mysql/bin/mysqld: Can't change dir to '/usr/local/mysql/mysqldata/' (Errcode: 2)
- :: [ERROR] Aborting
- :: [Note] /usr/local/mysql/bin/mysqld: Shutdown complete
- mysqld_multi log ::
- Starting MySQL servers
- :: [Warning] Can't create test file /usr/local/mysql/mysqldata/ora11g.lower-test
- :: [Warning] Can't create test file /usr/local/mysql/mysqldata/ora11g.lower-test
- /usr/local/mysql/bin/mysqld: Can't change dir to '/usr/local/mysql/mysqldata/' (Errcode: 2)
- :: [ERROR] Aborting
只需要把mysql_safe里面相应的data的目录从mysqldata改为data就可以正常启动了。
- # Next try where the source installs put it
- elif test -d $MY_BASEDIR_VERSION/var/mysql
- then
- DATADIR=$MY_BASEDIR_VERSION/var
- # Or just give up and use our compiled-in default
- else
- DATADIR=/usr/local/mysql/data
- fi
再进数据库查看:
- [root@ora11g bin]# cd /tmp
- [root@ora11g tmp]# ls
- keyring-HcV70B mysql3306.pid mysql3307.pid mysql3308.pid scim-panel-socket:-root vmware-root
- mapping-root mysql3306.sock mysql3307.sock mysql3308.sock ssh-WENobU7545
- [root@ora11g tmp]# ll
- total
- drwx------ root root Sep keyring-HcV70B
- srwxr-xr-x root root Sep mapping-root
- -rw-rw---- mysql mysql Mar : mysql3306.pid
- srwxrwxrwx mysql mysql Mar : mysql3306.sock
- -rw-rw---- mysql mysql Mar : mysql3307.pid
- srwxrwxrwx mysql mysql Mar : mysql3307.sock
- -rw-rw---- mysql mysql Mar : mysql3308.pid
- srwxrwxrwx mysql mysql Mar : mysql3308.sock
- srw------- root root Nov scim-panel-socket:-root
- drwx------ root root Mar : ssh-WENobU7545
- drwx------ root root Mar : vmware-root
- [root@ora11g tmp]# mysql -S mysql3306.sock
- Welcome to the MySQL monitor. Commands end with ; or \g.
- Your MySQL connection
- Server version: Source distribution
- Copyright (c) , , Oracle and/or its affiliates. All rights reserved.
- Oracle is a registered trademark of Oracle Corporation and/or its
- affiliates. Other names may be trademarks of their respective
- owners.
- Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
- mysql> show databases;
- +--------------------+
- | Database |
- +--------------------+
- | information_schema |
- | mysql |
- | performance_schema |
- | test |
- +--------------------+
- rows in set (0.00 sec)
- mysql> exit
- Bye
- [root@ora11g tmp]# mysql -S mysql3308.sock
- Welcome to the MySQL monitor. Commands end with ; or \g.
- Your MySQL connection
- Server version: Source distribution
- Copyright (c) , , Oracle and/or its affiliates. All rights reserved.
- Oracle is a registered trademark of Oracle Corporation and/or its
- affiliates. Other names may be trademarks of their respective
- owners.
- Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
- mysql> show databases;
- +--------------------+
- | Database |
- +--------------------+
- | information_schema |
- | mysql |
- | performance_schema |
- | test |
- +--------------------+
- rows in set (0.00 sec)
- mysql> exit
- Bye
- [root@ora11g tmp]#
当想使用stop来关闭的时候:
[root@ora11g mysql]# mysqld_multi --defaults-file=my.cnf stop 3306
发现log里面报错:
mysqld_multi log file version 2.16; run: Fri Mar 28 13:42:17 2014
Stopping MySQL servers
/usr/local/mysql/bin/mysqladmin: connect to server at 'localhost' failed
error: 'Access denied for user 'test'@'localhost' (using password: YES)'
原来是相应的数据库里面还没有这个用户以及相应的权限。
去数据库中创建用户并授权:
- [root@ora11g tmp]# ls -lrt
- total
- srw------- root root Nov scim-panel-socket:-root
- drwx------ root root Sep keyring-HcV70B
- srwxr-xr-x root root Sep mapping-root
- drwx------ root root Mar : vmware-root
- drwx------ root root Mar : ssh-WENobU7545
- srwxrwxrwx mysql mysql Mar : mysql3306.sock
- -rw-rw---- mysql mysql Mar : mysql3306.pid
- srwxrwxrwx mysql mysql Mar : mysql3307.sock
- -rw-rw---- mysql mysql Mar : mysql3307.pid
- srwxrwxrwx mysql mysql Mar : mysql3308.sock
- -rw-rw---- mysql mysql Mar : mysql3308.pid
- [root@ora11g tmp]# mysql -S mysql3306.sock
- Welcome to the MySQL monitor. Commands end with ; or \g.
- Your MySQL connection
- Server version: Source distribution
- Copyright (c) , , Oracle and/or its affiliates. All rights reserved.
- Oracle is a registered trademark of Oracle Corporation and/or its
- affiliates. Other names may be trademarks of their respective
- owners.
- Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
- mysql> grant shutdown on *.* to test@localhost identified by 'test' with grant option;
- Query OK, rows affected (0.00 sec)
- mysql> show grants for test@localhost;
- +---------------------------------------------------------------+
- | Grants for test@localhost |
- +---------------------------------------------------------------+
- | GRANT SHUTDOWN ON *.* TO 'test'@'localhost' WITH GRANT OPTION |
- +---------------------------------------------------------------+
- row in set (0.01 sec)
- mysql>
创建完毕后,再去停数据库:
[root@ora11g mysql]# mysqld_multi --defaults-file=my.cnf stop 3306-3308
[root@ora11g mysql]# ps -ef | grep 3306
root 11551 7661 0 13:49 pts/2 00:00:00 mysql -S mysql3306.sock
root 11583 7547 0 13:51 pts/1 00:00:00 grep 3306
可以在日志中发现已经能正常的进行关闭了。
Stopping MySQL servers
140328 13:50:53 mysqld_safe mysqld from pid file /tmp/mysql3306.pid ended
相应的,在tmp目录下面的socket文件也会相应的删除了。
140328 13:50:55 mysqld_safe mysqld from pid file /tmp/mysql3307.pid ended
mysqld_multi log file version 2.16; run: Fri Mar 28 13:50:56 2014
Stopping MySQL servers
140328 13:50:57 mysqld_safe mysqld from pid file /tmp/mysql3308.pid ended
mysql_multi启动数据库的更多相关文章
- oracle在cmd中启动数据库实例
在cmd中启动数据库实例: sqlplus /nolog 回车, conn as sysdba;回车,startup;然后回车
- sqlserver如何启动数据库邮件
可以在 msdb 数据库中停止数据库邮件.若要检查数据库邮件的状态,请执行下面的语句: 复制 EXECUTE dbo.sysmail_help_status_sp; 若要在邮件主机数据库中启动数据库邮 ...
- hsql使用架构包启动数据库
一.通常我们平时启动就是直接通过hsql.jar来进行启动 java -cp hsqldb.jar org.hsqldb.util.DatabaseManagerSwing java -cp hsql ...
- Oracle11g 启动数据库实例、关闭数据库实例
Oracle11g 启动数据库实例 startup 1: nomount 模式: 描述: 该模式只会创建实例(即:创建oracle 实例的各种内存结构和 ...
- linux环境:创建数据库用户,表空间,启动数据库
1.启动数据库 首先使用oracle用户登录Linux,然后在shell命令行中执行下面的命令:第一步:打开Oracle监听(先查看状态:oracle监听是否启动:lsnrctl status)$ l ...
- linux环境启动数据库
1.查看数据库监听的状态: 监听状态:lsnrctl status 出现如下列截图所示数据,说明切切换账户有问题:切换账户时要家:-: 如 su - oracle 第一步:打开Oracle监听$ ...
- 第15课-数据库开发及ado.net-数据库介绍,主键,外键,启动数据库,数据库身份验证方式,建表,分离数据库
第15课-数据库开发及ado.net 数据库介绍,主键,外键,启动数据库,数据库身份验证方式,建表,分离数据库 1. 学习方法 2. 多涨见识 3. 比自己强的人一起,学习更强:比自己更聪明的人 ...
- oracle 启动数据库与监听器
1.oracle 启动数据库与监听器 1)启动数据库 oracle用户进去 oracle/oracle sqlplus / as sysdba 然后startup 退出,然后启动监听进程 2)启动监听 ...
- Linux 启动数据库报错:could not open parameter file init**.ora
sqlplus /nolog.conn /as sysdba.startup命令后显示 SQL> startupORA-01078: failure in processing system p ...
随机推荐
- mysql中,主键与普通索引
一.什么是索引?索引用来快速地寻找那些具有特定值的记录,所有MySQL索引都以B-树的形式保存.如果没有索引,执行查询时MySQL必须从第一个记录开始扫描整个表的所有记录,直至找到符合要求的记录.表里 ...
- 【Networking】go get 失败,代理配置
推荐VPN: https://vpnso.com/ 如果还是有问题,比如: 重新编译Git,使用openssl替换gnutls,方法如下: http://askubuntu.com/questio ...
- 【leetcode】Word Ladder II
Word Ladder II Given two words (start and end), and a dictionary, find all shortest transformation ...
- HTTP请求报文和HTTP响应报文
HTTP报文是面向文本的,报文中的每一个字段都是一些ASCII码串,各个字段的长度是不确定的.HTTP有两类报文:请求报文和响应报文. HTTP请求报文 一个HTTP请求报文由请求行(request ...
- default constructor,copy constructor,copy assignment
C++ Code 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849 ...
- jquery checkbox 复选框多次点击判断选中状态,以及全选/取消的代码示例
2015年12月21日 10:52:51 星期一 目标, 点击当前的checbox, 判断点击后当前checkbox是否是选中状态. html: <input type="checkb ...
- ffmpeg-20160628-git-bin.7z
ESC 退出 0 进度条开关 1 屏幕原始大小 2 屏幕1/2大小 3 屏幕1/3大小 4 屏幕1/4大小 S 下一帧 [ -2秒 ] +2秒 ; -1秒 ' +1秒 下一个帧 -> -5秒 f ...
- (转)JAVA AJAX教程第四章—AJAX和MVC的简单结合
这里我们再理解了AJAX后,开始来用实例感受AJAX的力量. 今天我最后要实现的效果,当鼠标放到图片上时会根据,会把数据库库里的数据读出,通过显示框显示出来.这个在很多网上商店都有用到这里效果,我们这 ...
- js计算在线时长
后台传来毫秒,前台转换成对应的时分秒 //在线时长 function longTime(seconds){ //总秒数 //seconds=seconds/1000; //得到小时 var hour ...
- 【leetcode】Best Time to Buy and Sell (easy)
题目: Say you have an array for which the ith element is the price of a given stock on day i. If you w ...