linux中源码安装mysql,并启动多个实例

本文详细介绍了如何在一台服务器上部署多个MySQL实例的过程,包括安装MySQL、配置多实例、初始化数据库及启动验证等关键步骤。

先到http://dev.mysql.com/downloads/mysql/下载一个mysql,我使用的版本是mysql5.1.53。接着解压。

 

安装步骤如下:

 

 

先执行官方的步骤:

 

shell> groupadd mysql
shell> useradd -g mysql mysql
# Source-build specific instructions
shell> gunzip < mysql-VERSION.tar.gz | tar -xvf -
shell> cd mysql-VERSION
shell> ./configure --prefix=/usr/local/mysql
shell> make
shell> make install
# End of Source-build specific instructions
shell> cd /usr/local/mysql
shell> chown -R mysql .
shell> chgrp -R mysql .
shell> bin/mysql_install_db --user=mysql
shell> chown -R root .
shell> chown -R mysql var
shell> cp support-files/my-medium.cnf /etc/my.cnf #optional
shell> bin/mysqld_safe --user=mysql &

 


运行多个实例
执行

bin/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       = 3307
pid-file   = /usr/local/mysql/var2/hostname.pid2
datadir    = /usr/local/mysql/var2
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       = 3308
pid-file   = /usr/local/mysql/var3/hostname.pid3
datadir    = /usr/local/mysql/var3
language   = /usr/local/mysql/share/mysql/swedish
user       = unix_user2

[mysqld4]
socket     = /tmp/mysql.sock4
port       = 3309
pid-file   = /usr/local/mysql/var4/hostname.pid4
datadir    = /usr/local/mysql/var4
language   = /usr/local/mysql/share/mysql/estonia
user       = unix_user3

[mysqld6]
socket     = /tmp/mysql.sock6
port       = 3311
pid-file   = /usr/local/mysql/var6/hostname.pid6
datadir    = /usr/local/mysql/var6
language   = /usr/local/mysql/share/mysql/japanese
user       = unix_user4

 

注意[mysqld3]中打井号的行,感觉是mysql5.1.53一个bug,生成多余的配置,把它去掉就可以了。

现在我要运行2个mysql实例,修改上面的配置,如:

 

[mysqld_multi]
mysqld     = /usr/local/mysql/bin/mysqld_safe
mysqladmin = /usr/local/mysql/bin/mysqladmin
user       = root
password   = root

[mysqld2]
socket     = /tmp/mysql.sock2
port       = 3307
pid-file   = /usr/local/mysql/var2/hostname.pid2
datadir    = /usr/local/mysql/var2   ##数据库的数据文件
language   = /usr/local/mysql/share/mysql/english
user       = mysql

[mysqld3]
socket     = /tmp/mysql.sock3
port       = 3308
pid-file   = /usr/local/mysql/var3/hostname.pid3
datadir    = /usr/local/mysql/var3   ##数据库的数据文件
language   = /usr/local/mysql/share/mysql/english
user       = mysql
 

 

把这些配置加到/etc/my.cnf配置文件的底部。

初始化数据库

这一步很重要,数据文件没有初始化,就启动不起来数据库实例。

创建数据库的数据目录:

sudo mkdir /usr/local/mysql/var2
sudo mkdir /usr/local/mysql/var3

 

修改权限:

chown -R mysql /usr/local/mysql/var2
chown -R mysql /usr/local/mysql/var3


创建数据文件:

sudo bin/mysql_install_db --user=mysql --datadir=/usr/local/mysql/var2
sudo bin/mysql_install_db --user=mysql --datadir=/usr/local/mysql/var3


启动2个数据库实例

sudo bin/mysqld_multi start 2
sudo bin/mysqld_multi start 3


验证是否启动成功了

telnet 127.0.0.1 3307
telnet 127.0.0.1 3308


有数据返回,说明新加的两个实例已经运行起来了!

 

最后把两个实例的用户名和密码都设置为root,命令如下:

 

mysqladmin -h127.0.0.1 -P3307 -uroot -p password root
mysqladmin -h127.0.0.1 -P3308 -uroot -p password root

 

by 毛导

### 修改基于源码安装Linux MySQL root用户密码 对于基于源码安装MySQL,在更改`root`用户的密码时,需遵循特定步骤以确保操作的安全性和有效性。 当设置新密码前,可能需要调整MySQL服务器配置来允许简单密码。这可以通过执行SQL命令实现: ```sql SET GLOBAL validate_password_policy=LOW; ``` 此命令会降低密码强度验证策略至最低级别[^3]。然而,建议仅在必要情况下临时改变该设置,尽快恢复默认值以保障安全性。 为了实际变更`root`账户的密码,可以采用如下方法之一: #### 方法一:使用 `ALTER USER` 命令 如果当前版本支持,则可以直接运行下面这条语句完成更新过程: ```sql ALTER USER 'root'@'localhost' IDENTIFIED BY 'newpassword'; ``` 这里 `'newpassword'` 应替换为想要设立的新密码字符串。 #### 方法二:利用 `SET PASSWORD` 语法 另一种方式是借助于专门用于重置密码的指令: ```sql SET PASSWORD FOR 'root'@'localhost' = PASSWORD('newpassword'); ``` 注意:自MySQL 5.7起官方推荐使用带有`IDENTIFIED WITH`子句的形式替代旧版中的`PASSWORD()`函数调用;因此更现代的做法应该是这样书写上述命令: ```sql SET PASSWORD FOR 'root'@'localhost' = 'newpassword'; ``` 以上两种途径均能有效达成目的,具体选用哪一种取决于所使用的MySQL版本以及个人偏好。 另外值得注意的是,在某些情形下首次登录或忘记初始管理员凭证的情况下,可通过跳过权限表启动实例来进行无认证访问重新定义超级管理账号信息。不过这种做法涉及更多细节和技术考量,通常只适用于紧急情况下的修复工作。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值