Linux:MYSQL(二)二进制安装和编译安装及多实例安装

通用二进制格式安装过程

适合在linux平台上安装的包,包格式如下:
mariadb-10.2.15-linux-x86_64.tar.gz

一、 准备用户

groupadd -r -g 306 mysql
useradd -r -g 306 -u 306 –d /data/mysql mysql
(-g 组id号 -o忽略检查 -r创建系统账号 -M不创建家目录 -N不创建私有组 )
(不要添加-m创建家目录,自动手动创建,以免产生隐藏文件)

可参考MairaDB的rpm安装脚本
rpm -q --scripts mariadb-server

二、准备数据目录,建议使用逻辑卷

mkdir /data/mysql
chown mysql:mysql /data/mysql

三、准备二进制程序

tar xvf mariadb-VERSION-linux-x86_64.tar.gz -C /usr/local
cd /usr/local
ln -sv mariadb-VERSION mysql   创建软连接
chown -R root:mysql /usr/local/mysql/

四、准备配置文件

mkdir /etc/mysql/
cd support-files
cp support-files/my-huge.cnf /etc/mysql/my.cnf   参考模板
vim /my.cnf
[mysqld]中添加三个选项:
datadir = /data/mysql   
innodb_file_per_table = on   10.2之后版本不就不用加此项了,表单独管理
skip_name_resolve = on 禁止主机名解析,建议使用 (可速度提升)

五、 创建数据库文件

cd /usr/local/mysql/  (必须在此路径,否则会报错)
./scripts/mysql_install_db --datadir=/data/mysql --user=mysql

六、 准备服务脚本,并启动服务

cd /usr/local/mysql/supports-files/
cp ./mysql.server /etc/rc.d/init.d/mysqld  (或/etc/init.d/mysqld)
chkconfig --add mysqld
service mysqld start

七、 PATH路径(mysql指一下变量随便设置一个名字为mysql.sh)

echo 'PATH=/user/local/mysql/bin:$PATH' > /etc/profile.d/mysql.sh
. /etc/profile.d/mysql.sh
cd
mysql (已经可以登录了)

八、 安全初始化

/user/local/mysql/bin/mysql_secure_installation

停起服务:

service mysqld start
service mysqld stop

源码编译安装mariadb

适合源码编译安装的包,包格式如下:
mariadb-10.2.18.tar.gz

一、安装包

yum install bison bison-devel zlib-devel libcurl-devel libarchive-devel boost-devel gcc gcc-c++ cmake ncurses-devel gnutls-devel libxml2-devel openssl-devel libevent-devel libaio-devel

二、 做准备用户和数据目录

useradd –r –s /sbin/nologin –d /data/mysql/ mysql
mkdir /data/mysql
chown mysql.mysql /data/mysql
tar xvf mariadb-10.2.18.tar.gz

三、 cmake 编译安装

cmake的重要特性之一是其独立于源码(out-of-source)的编译功能,即编译工作可以在另一个指定的目录中而非源码目录中进行,这可以保证源码目录不受任何一次编译的影响,因此在同一个源码树上可以进行多次不同的编译,如针对于不同平台编译

编译选项:https://dev.mysql.com/doc/refman/5.7/en/source-configuration-options.html

cd mariadb-10.2.18/
cmake . \
-DCMAKE_INSTALL_PREFIX=/app/mysql \     二进制程序路径(会自动生成)
-DMYSQL_DATADIR=/data/mysql/ \          数据库存放路径(填写准备目录路径)
-DSYSCONFDIR=/etc \
-DMYSQL_USER=mysql \
-DWITH_INNOBASE_STORAGE_ENGINE=1 \
-DWITH_ARCHIVE_STORAGE_ENGINE=1 \
-DWITH_BLACKHOLE_STORAGE_ENGINE=1 \
-DWITH_PARTITION_STORAGE_ENGINE=1 \
-DWITHOUT_MROONGA_STORAGE_ENGINE=1 \
-DWITH_DEBUG=0 \
-DWITH_READLINE=1 \
-DWITH_SSL=system \
-DWITH_ZLIB=system \
-DWITH_LIBWRAP=0 \
-DENABLED_LOCAL_INFILE=1 \
-DMYSQL_UNIX_ADDR=/data/mysql/mysql.sock \   socket文件路径(注意更改)
-DDEFAULT_CHARSET=utf8 \
-DDEFAULT_COLLATION=utf8_general_ci

make && make install

提示:如果出错,执行rm -f CMakeCache.txt
make -j 8 && make install && { for i in {1..10};do echo -e '\a';sleep 0.2;done;}
(可提示设置声响)

四、 准备环境变量

echo 'PATH=/app/mysql/bin:$PATH' > /etc/profile.d/mysql.sh
. /etc/profile.d/mysql.sh

五、 生成数据库文件

cd /app/mysql/
scripts/mysql_install_db --datadir=/data/mysql/ --user=mysql

六 、 准备配置文件

cp /app/mysql/support-files/my-huge.cnf /etc/my.cnf

七、 准备启动脚本

cp /app/mysql/support-files/mysql.server /etc/init.d/mysqld

八、 启动服务

chkconfig --add mysqld ;service mysqld start
排错:
若启动失败因socket文件,修改配置文件socket文件路径即可,因为自建socket没有写权限

vim /etc/my.cnf
[client]
socket  = /data/mysql/mysql.sock
[mysqld]
socket  = /data/mysql/mysql.sock

实验:多实例

一、 规划

3306,3307,3308
/data/mysql/{3306,3307,3308}
/data/mysql/3306/{etc,log,data,pid,bin,socket} 

二、生成数据库数据文件

 /usr/bin/mysql_install_db  --datadir=/data/mysql/3306/data --user=mysql
 /usr/bin/mysql_install_db  --datadir=/data/mysql/3307/data --user=mysql
 /usr/bin/mysql_install_db  --datadir=/data/mysql/3308/data --user=mysql

三、配置文件

cp /etc/my.cnf /data/mysql/3306/etc/

[root@centos7 3306]#vim etc/my.cnf 
[mysqld]
port=3306                       添加端口                                             datadir=/data/mysql/3306/data
socket=/data/mysql/3306/socket/mysql.sock
[mysqld_safe]
log-error=/data/mysql/3306/log/mariadb.log
pid-file=/data/mysql/3306/pid/mariadb.pid
#!includedir /etc/my.cnf.d   注释掉

cp my.cnf /data/mysql/3307/etc/
cp my.cnf /data/mysql/3308/etc/

vim /data/mysql/3307/etc/
:%s/6/7/                       扩展模式替换
vim /data/mysql/3308/etc/
:%s/6/8/                       扩展模式替换

四、服务的管理脚本

cp /usr/local/mysql/support-files/mysql.server
rz mysql  笔记内有整理好的脚本
cp mysqld  /data/mysql/3306/bin/mysqld  
vim mysqld
mysql_basedir="/data/mysql"      只改这个路径即可

cp  /data/mysql/3306/bin/mysqld  /data/mysql/3307/bin/mysqld  
cp  /data/mysql/3306/bin/mysqld  /data/mysql/3308/bin/mysqld 

vim /data/mysql/3307/bin/mysqld 
port =3307 只改端口号就可以了

vim /data/mysql/3308/bin/mysqld 
port =3308 只改端口号就可以了

chmod+x bin/mysqld
chmod+x  ../3307/bin/mysqld

启动:
bin/mysqld start
../3307/bin/mysqld start
../3308/bin/mysqld start

停止:
bin/mysqld stop

若让输入口令,可先改配置文件
vim  /bin/mysqld
找到-p${mysql_pwd}所在的行,复制一行添加注释,将来改回来用
然后把-p${mysql_pwd} 在行内删除,其他保留

五、修改root 口令

mysqladmin -uroot -S socket/mysql.sock password "dushan" 指定用户,指定socket,之后改口令

vim /bin/mysqld 把之前注释掉的文件改回原来
[mysqld]
mysql_pwd="dushan" 注意配置文件中添加上密码,否则不能停服务 

六、 链接

mysql -S /data/mysql/3306/socket/mysql.sock 通过socket文件链接
mysql -uroot -pcentos  -P 3307 -h127.0.0.1 通过制定端口链接

show variables like "port" 查看端口

七、 添加开机启动

chkconfig --add mysql 3307
chkcnfig --list

mysql  3:on 4:on 5:on


或 启动脚本路径直接写入
/etc/rc.d/rc.local

二进制安装实验步骤:

tar xf mariadb-10.2.15-linux-x86_64.tar.gz
mv mariadb-10.2.15-inux-x86_64 /usr/local/
cd /usr/local/
ln -s mariadb-10.2.15-inux-x86_64/ mysql
chown -R root.root mysql/
useradd -r -s /sbin/nologin -d /data/mysql mysql
mkdir /data/mysql
chown mysql.mysql /data/mysql/
cd /mysql/support-files/
mkdir /etc/mysql/
cp my-huge.cnf /etc/mysql/my.cnf
vim /etc/mysql/my.cnf
[mysqld]
datadir=/data/mysql 添加一行
cd .. 回到mysql目录
ls scripts/
scripts/mysql_install_db --datadir=/data/mysql --user=mysql
ll /data/mysql
ls support-files/
cp support-files/mysql.server /etc/init.d/mysqld
chkconfig --add mysqld
chkconfig --list
service mysqld start
echo 'PATH=/usr/local/mysql/bin:$PATH' > /etc/profile.d/mysql.sh
. /etc/profile.d/mysql.sh
mysql 可进入试用了
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值