用户目录下编译mysql源码,实现单主机安装多个mysql实例

1.建立用于安装mysql的用户目录:useradd mysql_1; passwd mysql_1;

2.在没有mysql_1目录下建立文件夹setup: su - mysql_1; mkdir setup;

3.将下载下来的mysql源码解压之mysql_1用户中: cd setup; tar -zxvf mysql-5.7.22.tar.gz;

4.修改源码目录及文件权限,设置mysql_1下所有文件及文件夹owner: mysql_1:mysql_1
chown mysql_1.mysql_1 * -R

5.在mysql_1目录下创建必要的路径,包括配置文件路径~/etc,数据目录~/data

6.利用cmake进行编译(若无cmake需安装):

cmake -DCMAKE_INSTALL_PREFIX=/home/mysql_1/ -DMYSQL_DATADIR=/home/mysql_1/data -DSYSCONFDIR=/home/mysql_1/etc -DMYSQL_UNIX_ADDR=/home/mysql_1/bin/mysql1.sock  -DWITH_MYISAM_STORAGE_ENGINE=1  -DWITH_INNOBASE_STORAGE_ENGINE=1  -DWITH_MEMORY_STORAGE_ENGINE=1  -DWITH_READLINE=1     -DENABLED_LOCAL_INFILE=1  -DWITH_PARTITION_STORAGE_ENGINE=1  -DEXTRA_CHARSETS=all   

7.若出现boost版本不对的报错,需要安装匹配版本的boost。确保cmake无错误抛出。

例如需要的版本为1.59.0,则下载:

wget http://www.sourceforge.net/projects/boost/files/boost/1.59.0/boost_1_59_0.tar.gz

创建目录/usr/local/boost,并将boost1.59.0压缩宝解压至该目录下,在cmake过程指定boost路径:

 1 cmake -DCMAKE_INSTALL_PREFIX=/home/mysql_1/
 2 -DMYSQL_DATADIR=/home/mysql_1/data
 3 -DSYSCONFDIR=/home/mysql_1/etc
 4 -DMYSQL_UNIX_ADDR=/home/mysql_1/bin/mysql1.sock
 5 -DWITH_MYISAM_STORAGE_ENGINE=1
 6 -DWITH_INNOBASE_STORAGE_ENGINE=1
 7 -DWITH_MEMORY_STORAGE_ENGINE=1
 8 -DWITH_READLINE=1
 9 -DENABLED_LOCAL_INFILE=1
10 -DWITH_PARTITION_STORAGE_ENGINE=1
11 -DEXTRA_CHARSETS=all
12 -DWITH_BOOST=/usr/local/boost

8. make install?安装mysql

9.将/etc/my.cnf拷贝至/home/mysql_1/etc目录下,自动义配置。例如:

 1 [mysqld]
 3 port= 6301
 4 bind_address= 192.168.0.156
 5 socket=/home/mysql_1/bin/mysqld1.sock
 6 datadir= /home/mysql_1/data
 7 log-error= /home/mysql_1/bin/log/mysqld1.log
 8 pid-file= /home/mysql_1/bin/mysql1.pid
 9 #innodb_data_home_dir= /home/mysql_1/data
10 #innodb_log_group_home_dir= /home/mysql_1/data/redo
11 basedir=/home/mysql_1
12 user=mysql_1
13
14 #binlog
15 #server-id = 1
16 #log-bin= /home/mysql_1/data/binlog/mysql-bin
17 #binlog_format= ROW
18 #relay-log= /home/mysql_1/data/relaylog/relay-bin
19
22 #tmpdir=/home/mysql_1/data/tmp
23 #secure-file-priv=
24 #gtid_mode= on
25 #enfore_gtid_consistency=on
26 #skip_name_resolve
28
29 language = /home/mysql_1/share/english
30 

10.添加环境变量 /etc/profile:   export PATH=$PATH:/home/mysql_1/bin; source /etc/profile使其生效

11.运行mysqld: mysqld --defaults-file=/home/mysql_1/etc/my.cnf  &

注:若想指定配置文件启动mysql server进程(mysqld),首先将/etc/my.cnf拷贝至自定义/home/mysql_1/etc/my.cnf需要指定在mysqld启动时指定配置文件路径,且最后需要加上&符号,这样终端不会阻塞。否则终端启动mysqld之后会一直卡在那里。

12.查看log信息(位于mysql_1/bin/log下面),若能看到最后ready for connection| source distribution字样则为成功。若出现任何问题,注意是否配置文件文件出错

13.创建mysql 服务,这样以后可用通过mysql_service_name start/restart/stop等方式将mysql当作service来启停。

cp supports-file/mysql.service /etc/init.d/mysql_6301,
chkconfig --add mysql   chkconfig --level 2345 mysql on
因此,开启/重启/停止mysql可以用以下方式:mysql_6301 start/restart/stop

14.到此安装完成,mysql服务正常运行。

此时日志看不到任何异常,但是client可能依然连接不上:
执行mysql -uroot -p‘root‘==> Access denied.
原因:mysql可以连接,但是初始化密码不对。
解决方案:
service mysql_6301 stop
mysqld_safe --user=mysql_1 --skip-grant-tables --skip-networking &   (即跳过密码授权)
另开客户端,mysql -uroot mysql,就可以进来了。

查看user表:select user, host, password from mysql.user;

设置密码为root:update user set authentication_string=password(‘root‘) where User=‘root‘;
输入exit退出

启动mysql服务:service mysql start
mysql -u root -p‘root‘
成功进入mysql!!!

原文地址:https://www.cnblogs.com/xinxinBlog/p/9338949.html

时间: 2024-10-08 02:45:33

用户目录下编译mysql源码,实现单主机安装多个mysql实例的相关文章

Windows,linux下编译qt源码(比较简单)

一.linux下静态编译qt源码 1.取到qt源码并解压到文件夹 2.cd到qt目录下 3.使用configure生成makefile ./configure–prefix /opt/qtstatic –static –release -nomake examples  --nomake demos-nomake docs -continue 4.待执行完之后执行make 5.makeinstall 参考:http://www.cnblogs.com/qianyuming/archive/201

Docker环境下编译android源码|编译可运行xposed

前言 因为我的电脑是Ubuntu18的版本,成功编译xposed刷入手机之后无法启动,检查了所有的环境,没有问题,发现可能是Ubuntu系统的兼容库的问题,但是我不可能重新安装系统吧,毕竟有点蠢,所以最好的方式就是在docker的Ubuntu容器中编译,统一环境问题,也可以隔离环境平时 工作开发环境,下面开始操作 安装配置docker docker加速,采用对国人友好的镜像地址 通过修改daemon配置文件/etc/docker/daemon.json来使用加速器,执行以下命令: 您可以配置 D

cygwin下编译zlib源码

本文介绍在cygwin下编译zlib源码的方法步骤,这个过程虽然简单,但还是有一些需要注意的地方. zlib源码下载地址: http://www.zlib.net/ 下载后,解压就会生成zlib-1.2.8这种文件夹. 1. 编译步骤: 首先,创建一个文件夹,用configure命令指定编译结果到这个文件夹. 其次,make 最后,make install 当然,也可以将最后两步合并为 make & make install 2. 为加深印象,特帖实践过程如下: $ pwd /cygdrive/

ubuntu下编译VLC源码

http://blog.csdn.net/beitiandijun/article/details/9225591ubuntu下编译VLC源码 分类: 视频处理 2013-07-02 17:33 5761人阅读 评论(0) 收藏 举报VLC 操作系统选择:http://old-releases.ubuntu.com/releases/14.04.0/ubuntu-14.04-desktop-amd64.iso sudo apt-get install已经安装了freescale的i.MX6Q的a

【转】在Ubuntu下编译Android源码并运行Emulator

原文网址:http://www.mcuos.com/thread-4553-1-1.html 建立编译环境 1.在VirtualBox上安装Ubuntu 2.安装JDK   $ sudo apt-get install sun-java5-jdk  或   $ sudo apt-get install sun-java6-jdk (donut 1.6)3.安装flex,bison,gperf,libsdl-dev,libesd0-dev,libwxgtk2.6-dev(可选),build-ess

mac下编译node源码

看过一篇win7 64x下面编译node的文章,链接地址:编译nodejs及其源码研究 下面学习一下在mac下面如何编译node源码. 过程也挺简单. 1.下载源码. > mkdir nodesrc && cd nodesrc #创建nodesrc目录,并定位到该目录下> git clone https://github.com/nodejs/node.git #使用git clone命令下载node源码 当然也可以直接下载压缩包,然后解压到nodesrc目录. 2.了解一下n

【软件编译】vs2013下编译notepad++源码

1 下载notepad++源码 登录notepad++官网https://notepad-plus-plus.org/ 2 对scintilla进行编译,获得SciLexer.dll文件    具体编译方法请自行谷歌,本人赶时间,直接从已安装的notepad++中复制了一份. problem 1:如果没有这个文件会在一开始报错 problem 2:如果这个文件是自己编译获得的,则这个文件没有签名,也会报错. solution 2-1:只需要将验证签名的函数去掉或强行通过验证就可以了.(通过在整个

【转】ubuntu 11.10(32位系统)下编译android源码

原文网址:http://www.cnblogs.com/dwayne/archive/2011/11/16/2251734.html 本文介绍在ubuntu 11.10系统下编译android 2.3.3源码,编译之前请确定上两篇文章(http://www.cnblogs.com/dwayne/archive/2011/11/16/2250732.html和http://www.cnblogs.com/dwayne/archive/2011/11/11/2245383.html)中所需的准备工作

opensuse x64下编译Ice源码(以编译c++为例)

官方编译文档见Ice官方编译文档 环境: opensuse13.1 x64,kdevelop4.7.6 ICE依赖包: Ice has dependencies on a number of third-party libraries: Berkeley DB 5.3 expat 2.0 OpenSSL 0.9.8 or later bzip2 1.0 mcpp 2.7.2 (with patches) 依赖包安装: zypper install mcpp mcpp-devel openssl