您现在的位置是:主页 > news > 地产网站怎么做/会计培训班的费用是多少

地产网站怎么做/会计培训班的费用是多少

admin2025/4/21 3:56:11news

简介地产网站怎么做,会计培训班的费用是多少,wordpress 代码臃肿,四个字广告公司名字MySQL多实例安装配置什么是MySQL多实例?多实例就是在一台机器上开启多个不同服务端口,运行多个MySQL服务进程,这些服务通过进程通过不同饿socket监听不同的服务端口来提供各自的服务这些MySQL多实例是公用一套MySQL安装程序,使用不…

地产网站怎么做,会计培训班的费用是多少,wordpress 代码臃肿,四个字广告公司名字MySQL多实例安装配置什么是MySQL多实例?多实例就是在一台机器上开启多个不同服务端口,运行多个MySQL服务进程,这些服务通过进程通过不同饿socket监听不同的服务端口来提供各自的服务这些MySQL多实例是公用一套MySQL安装程序,使用不…

MySQL多实例安装配置

什么是MySQL多实例?

多实例就是在一台机器上开启多个不同服务端口,运行多个MySQL服务进程,这些服务通过进程通过不同饿socket监听不同的服务端口来提供各自的服务

这些MySQL多实例是公用一套MySQL安装程序,使用不同的my.conf配置文件,启动文件,数据文件。在提供服务同时,多实例MySQL在逻辑上看来就是各自独立的。但是他们是公用资源,所以会有影响。

多实例的作用与问题

1、 有效的利用服务器资源

当单个服务器资源有剩余时,可以充分利用剩余资源提供更多服务。

2、 节约服务器资源

当资金紧张但是数据库又需要各自尽量独立提供给服务,而且需要主从同步等技术时,多实例就很适合

3、 资源互相抢占问题

当某个服务实例并发很高或者有慢查询时,整个实例就会消耗更多的内存、CPU、磁盘io资源,导致服务器上其他实例提供服务的质量下降。这就相当于大家住在一个房子里,做一件事,其他人就需要等待

MySQL配置方案

多配置文件部署方案

通过配置多个配置文件及多个启动程序来实现多实例的方案;

以端口形式划分,3306,3307端口创建实例目录,每个目录下都有各自的实例的数据文件(data),实例的配置文件(my.conf),实例的启动文件(mysql)

单一配置文件部署方案

mysqld_multi

缺点,耦合性太高

安装多实例的数据库

创建MySQL多实例的数据文件目录

一般情况下我们采用/data目录作为MySQL多实例总的根目录然后规划不同的MySQL实例端口来作为/data下的二级目录,不同的端口号就是不同的实例目录,用来区别不同的实例

这里以cmake为例子安装多实例

安装MySQL依赖包

yum install -y ncurses-develyum install -y libaio-deve

建立MySQL账号

group mysql

useradd-s /sbin/nologin -g mysql -M mysql

创建相关MySQL多实例的目录如下

[root@localhost ~]# mkdir -pv /data/{3306,3307}/datamkdir: created directory ‘/data’mkdir: created directory ‘/data/3306’mkdir: created directory ‘/data/3306/data’mkdir: created directory ‘/data/3307’mkdir: created directory ‘/data/3307/data’

先将我们单实例的MySQL给kill掉

[root@localhost ~]# pkill mysqld

[root@localhost~]# ps -ef | grepmysqld

root3314 2827 0 09:03 pts/0 00:00:00 grep --color=auto mysqld

[root@localhost~]# ps -ef | grepmysql

root3316 2827 0 09:03 pts/0 00:00:00 grep --color=auto mysql

[root@localhost~]# rm -f /etc/init.d/mysqld

这个操作相当于沃恩前面做实验中初始化之后的操作就不做了

[root@localhost~]# tree /data/

/data/总的多实例根目录

├──33063306实例的目录

│ └── data 3306实例的数据文件目录

└──33073307实例目录

└── data 3307实例的数据文件目录4 directories, 0 files

MySQL数据库多实例的配置文件

MySQL数据库默认用户提供了多个配置文件模板,用户可以根据硬件配置大小来选择

my.cnf

port =3306socket=/data/3306/mysql.sock

port=3306socket=/data/3306/mysql.sock

datadir=/data/3306/data

long_query_time= 1#log-error= /data/3306/error.log

#log-slow-queries = /data/3306/slow.log

pid-file = /data/3306/mysql.pid

log-bin = /data/3306/mysql-bin

relay-log = /data/3306/relay-bin

relay-log-info-file = /data/3306/relay-log.infoserver-id = 1log-error = /data/3306/mysql_oldboy3306.err

pid-file = /data/3306/mysql.pid3307port=3307socket=/data/3307/mysql.sock

port=3307socket=/data/3307/mysql.sock

datadir=/data/3307/data

#long_query_time= 1#log-error= /data/3307/error.log

#log-slow-queries = /data/3307/slow.log

pid-file = /data/3307/mysql.pid

#log-bin = /data/3307/mysql-bin

relay-log = /data/3307/relay-bin

relay-log-info-file = /data/3307/relay-log.infoserver-id = 3log-error = /data/3307/mysql_oldboy3307.err

pid-file = /data/3307/mysql.pid

[root@localhost ~]# tree /data/

/data/├──3306│ ├── data

│ └── my.cnf 这就是3306实例的配置文件

└──3307├── data

└── my.cnf 这就是3307实例的配置文件4 directories, 2 files

然后创建多实例的启动文件

#!/bin/shport=3306mysql_user="root"mysql_pwd="oldboy"CmdPath="/application/mysql/bin"mysql_sock="/data/${port}/mysql.sock"#startupfunctionfunction_start_mysql()

{if [ ! -e "$mysql_sock" ];thenprintf"Starting MySQL...\n"

/bin/sh ${CmdPath}/mysqld_safe --defaults-file=/data/${port}/my.cnf 2>&1 > /dev/null &

elseprintf"MySQL is running...\n"exitfi}

#stopfunctionfunction_stop_mysql()

{if [ ! -e "$mysql_sock" ];thenprintf"MySQL is stopped...\n"exitelseprintf"Stoping MySQL...\n"${CmdPath}/mysqladmin -u ${mysql_user} -p${mysql_pwd} -S /data/${port}/mysql.sock shutdo

wnfi}

#restartfunctionfunction_restart_mysql()

{

printf"Restarting MySQL...\n"function_stop_mysqlsleep 2function_start_mysql

}case $1 instart)

function_start_mysql

;;

stop)

function_stop_mysql

;;

restart)

function_restart_mysql

;;*)

printf"Usage: /data/${port}/mysql {start|stop|restart}\n"

esac

3307#!/bin/shport=3307mysql_user="root"mysql_pwd="oldboy"CmdPath="/application/mysql/bin"mysql_sock="/data/${port}/mysql.sock"#startupfunctionfunction_start_mysql()

{if [ ! -e "$mysql_sock" ];thenprintf"Starting MySQL...\n"

/bin/sh ${CmdPath}/mysqld_safe --defaults-file=/data/${port}/my.cnf 2>&1 > /dev/null &

elseprintf"MySQL is running...\n"exitfi}

#stopfunctionfunction_stop_mysql()

{if [ ! -e "$mysql_sock" ];thenprintf"MySQL is stopped...\n"exitelseprintf"Stoping MySQL...\n"${CmdPath}/mysqladmin -u ${mysql_user} -p${mysql_pwd} -S /data/${port}/mysql.sock shutdo

wnfi}

#restartfunctionfunction_restart_mysql()

{

printf"Restarting MySQL...\n"function_stop_mysqlsleep 2function_start_mysql

}case $1 instart)

function_start_mysql

;;

stop)

function_stop_mysql

;;

restart)

function_restart_mysql

;;*)

printf"Usage: /data/${port}/mysql {start|stop|restart}\n"

esac

多实例启动文件的启动MySQL服务实质

mysql_safe –defaults-file=/data/3306/my.cnf 2>&1 > /dev/nul &mysql_safe –defaults-file=/data/3307/my.cnf 2>&1 > /dev/nul &多实例启动文件的停止MySQL服务实质

mysqladmin-u root -p123456 -S /data/3306/mysql.sock shutdown

mysqladmin-u root -p123456 -S /data/3307/mysql.sock shutdown

[root@localhost ~]# tree /data/

/data/├──3306│ ├── data

│ ├── my.cnf

│ └── mysql

└──3307├── data

├── my.cnf

└── mysql4 directories, 4 files

配置MySQL多实例文件的权限

[root@localhost ~]# chown -R mysql.mysql /data

[root@localhost~]# find /data/ -type f -name "mysql" | xargs ls -l-rw-r--r--. 1 mysql mysql 1307 Oct 23 09:44 /data/3306/mysql-rw-r--r--. 1 mysql mysql 1307 Oct 23 09:44 /data/3307/mysql

[root@localhost~]# find /data/ -type f -name "mysql" | xargs chmod +x

[root@localhost~]# find /data/ -type f -name "mysql" | xargs ls -l-rwxr-xr-x. 1 mysql mysql 1307 Oct 23 09:44 /data/3306/mysql-rwxr-xr-x. 1 mysql mysql 1307 Oct 23 09:44 /data/3307/mysql

配置MySQL全局使用路径

[root@localhost ~]# tail -1 /etc/profile

export PATH=/application/mysql/bin:$PATH

第二种办法

就是把/usr/local/mysql/bin下的命令拷贝到全局命令路径下/usr/local/sbin下/bin/cp /usr/local/mysql/bin/*/usr/local/sbin

初始化数据库

cd /application/mysql/scripts/./mysql_install_db –basedir=/application/mysql –datadir=/data/3306/data –user=mysql

./mysql_install_db –basedir=/application/mysql –datadir=/data/3307/data –user=mysql

为什么要初始化,就是创建基础的数据库文件

最直接的结果就是在你data目录下放了库表的数据了

ec11870db02cfc5c70748e87a2e7b30e.png

这个时候就可以启动数据库了

[root@root scripts]# /data/3306/mysql start

Starting MySQL...

[root@root scripts]#/data/3307/mysql start

Starting MySQL...

此时服务已经启动了

d4b9af6ddfb528360aaf15babd805358.png

如果出错,检查自己的错误日志,这里里面会告诉你

963182c95ed2e0cc342cff27a42c0aa6.png

多实例的登录

[root@root scripts]# mysql -S /data/3306/mysql.sock

Welcome to the MySQL monitor. Commands end with ; or \g.

Your MySQL connectionid is 1Server version:5.5.32-log Source distribution

Copyright (c)2000, 2013, 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 clearthe current input statement.

mysql>mysql>create database d3306;

Query OK,1 row affected (0.00sec)

mysql>

对于多实例的登录可以指定sock登录

[root@root ~]# mysql -S /data/3307/mysql.sock

Welcome to the MySQL monitor. Commands end with ; or \g.

Your MySQL connectionid is 1Server version:5.5.32Source distribution

Copyright (c)2000, 2013, 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 clearthe current input statement.

mysql>show databases;+--------------------+

| Database |

+--------------------+

| information_schema |

| mysql |

| performance_schema |

| test |

+--------------------+

4 rows in set (0.00sec)

mysql>create database d3307;

Query OK,1 row affected (0.01sec)

mysql>show databases;+--------------------+

| Database |

+--------------------+

| information_schema |

| d3307 |

| mysql |

| performance_schema |

| test |

+--------------------+

5 rows in set (0.00sec)

mysql> system ls

2019 data.zipDownloads Music Templates zhangsan__01

anaconda-ks.cfg Desktop install.log Pictures Videos zhangsan__02

data Documentsinstall.log.syslog Public zhangsan__00

mysql> system mysql -S /data/3306/mysql.sock

Welcome to the MySQL monitor. Commands end with ; or \g.

Your MySQL connectionid is 2Server version:5.5.32-log Source distribution

Copyright (c)2000, 2013, 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 clearthe current input statement.

mysql>show databases;+--------------------+

| Database |

+--------------------+

| information_schema |

| d3306 |

| mysql |

| performance_schema |

| test |

+--------------------+

5 rows in set (0.00sec)

mysql>exit

Bye

mysql>show databases;+--------------------+

| Database |

+--------------------+

| information_schema |

| d3307 |

| mysql |

| performance_schema |

| test |

+--------------------+

5 rows in set (0.00sec)

mysql>

登录数据库

mysql -S /data/3306/mysql.sock

mysql-S /data/3306/mysql.sock

重启数据库

/data/3306/mysql stop/data/3307/mysql stop/data/3306/mysql start/data/3307/mysql start

此时可以发现,MySQL无法停止,这是因为你的MySQL没有密码

[root@root 3306]# /data/3306/mysql stop

Stoping MySQL.../application/mysql/bin/mysqladmin: connect to server at 'localhost'failed

error:'Access denied for user'root'@'localhost'(using password: YES)'

MySQL安全配置

为root增加密码

mysqladmin -u root -S /data/3306/mysql.sock password ‘123456’

mysqladmin-u root -S /data/3307/mysql.sock password '123456'

此时会发现无法登录了

[root@root 3306]# mysql -S /data/3306/mysql.sock

ERROR1045 (28000): Access denied for user 'root'@'localhost'(using password: NO)

[root@root3306]# vim /data/3306/mysql

[root@root3306]# vim /data/3307/mysql

修改其中mysql_pwd为自己设置的密码

但是由于密码是在脚本文件中的,我们出与安全的考虑需要设置一下他的权限

[root@root 3306]# find /data/ -type f -name "mysql" -exec chmod 700{} \;

[root@root3306]# find /data/ -type f -name "mysql" -exec chownroot.root {} \;

[root@root3306]# find /data/ -type f -name "mysql" -exec ls -l {} \;-rwx------. 1 root root 1307 Oct 23 21:28 /data/3306/mysql-rwx------. 1 root root 1307 Oct 23 21:28 /data/3307/mysql

此时我们将mysqldpkill掉

[root@root 3306]# pkill mysqld

[root@root3306]# pkill mysqld

[root@root3306]# netstat -lntup | grep 330

重新启动mysql

[root@root 3306]# /data/3306/mysql start

Starting MySQL...

[root@root3306]# /data/3307/mysql start

Starting MySQL...

也可以停止mysql服务了

[root@root 3306]# /data/3306/mysql stop

Stoping MySQL...

[root@root3306]# /data/3307/mysql stop

Stoping MySQL...

删除多余的mysql用户

mysql> selectuser,host from mysql.user;

mysql> delete from mysql.user where user="";

如何再增加一个MySQL实例

以3308端口为例

[root@root ~]# mkdir /data/3308/data -p

[root@root~]# cp /data/3306/my.cnf /data/3308/[root@root~]# cp /data/3306/mysql /data/3308/[root@root~]# chown -R mysql.mysql /data/

Vim对内容做一个替换g/3306/s//3307/g或者:%s/3306/3307/g

[root@root scripts]# ./mysql_install_db --user=mysql --basedir=/application/mysql --datadir=/data/3308/data/

c3a6af1f852de29b541898ec68a0f2c7.png

[root@root ~]# /data/3308/mysql start

Starting MySQL...

[root@root~]# ss -tnl | grep --color=auto 330LISTEN0 128 *:3306 *:*LISTEN0 128 *:3307 *:*LISTEN0 128 *:3308 *:*修改密码

[root@root~]# mysqladmin -u root -S /data/3308/mysql.sock password '123456'登录3308端口的mysql

[root@root~]# mysql -S /data/3308/mysql.sock -u root -p123456

Welcome to the MySQL monitor. Commands end with ; or \g.

Your MySQL connectionid is 3Server version:5.5.32-log Source distribution

Copyright (c)2000, 2013, 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 clearthe current input statement.

mysql> selectuser,host from mysql.user->;+------+-----------+

| user | host |

+------+-----------+

| root | 127.0.0.1 |

| root | ::1 |

| | localhost |

| root | localhost |

| | root |

| root | root |

+------+-----------+

6 rows in set (0.00sec)

mysql>mysql本地登录指定sock

远程登录mysql-uroot -p123456 -P3308 -h 192.168.17.13

至此,MySQL多实例结束