文章目录
- Mariadb安装方式:
- ① .用yum安装
- ② . 基于RPM包的安装(yum网络源- --包)
- ③ .二进制安装
- 二进制安装mysql 5.7
- ④ . 源码包安装
- 五. 实现数据库的多实例(重点)
Mariadb安装方式:
-
源代码:编译安装
-
二进制格式的程序包:展开至特定路径,并经过简单配置后即可使用
-
程序包管理器管理的程序包
CentOS 安装光盘
项目官方:https://downloads.mariadb.org/mariadb/repositories/
国内镜像:https://mirrors.tuna.tsinghua.edu.cn/mariadb/yum/
https://mirrors.tuna.tsinghua.edu.cn/mysql/yum/
① .用yum安装
端口号3306
centos6用的是mysql-server
服务为mysqld
mysql自带一个root账号(得设置密码)
centos7用的是mariabd-server
服务为mariadb-service
直接安装后启动就ok
② . 基于RPM包的安装(yum网络源- --包)
仓库配置路径
在配置yum源的时候尽量用(清华大学的源--------快)
https://mirrors.tuna.tsinghua.edu.cn/mariadb/yum/10.5/centos7-amd64
[root@centos7 yum.repos.d]#cat mariadb.repo
[mariadb]
name = MariaDB
baseurl = https://mirrors.tuna.tsinghua.edu.cn/mariadb/yum/10.5/centos7-amd64
gpgkey=https://yum.mariadb.org/RPM-GPG-KEY-MariaDB
gpgcheck=1
安装服务器MariaDB-server和客户端Mariadb-client
③ .二进制安装
通用二进制格式安装过程mariadb
绿色软件,免安装
已经编译好的,但是没有配置文件
二进制格式安装过程
(1) 准备用户(-r系统用户)
groupadd -r -g 306 mysql
-d指定家目录,用于存放库文件(不能有自动生成的.bashr
等文件,手工建家目录)
useradd -r -g 306 -u 306 –d /data/mysql mysql
(2) 准备数据目录,建议使用逻辑卷
mkdir /data/mysql
chown mysql:mysql /data/mysql
(3) 准备二进制程序
注意:这里必须是/usr/local因为在这之前编译时已经指定了路径
tar xf 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/
(4) 准备配置文件
mkdir /etc/mysql/
cd mariadb-10.5.8-linux-x86_64/
cp support-files/my-large.cnf /etc/mysql/my.cnf
vim /etc/mysql/my.cnf
[mysqld]中添加选项:
datadir = /data/mysql
innodb_file_per_table = on
skip_name_resolve = on 禁止主机名解析,建议使用
character-sets-dir=utf8md4 指定字符编码
(5)创建数据库文件
cd /usr/local/mysql/
启动脚本(用于创建数据库初始化)必须在./scripts/下面(有bin)
./scripts/mysql_install_db --datadir=/data/mysql --user=mysql
(6)准备服务脚本,并启动服务
cp ./support-files/mysql.server
/etc/rc.d/init.d/mysqld 拷贝至服务目录
chkconfig --add mysqld 加入服务
chconfig – list 查看
service mysqld start (centos6和7都这样用)
3306端口就开启了
centos7
(7)PATH路径
echo ‘PATH=/usr/local/mysql/bin:$PATH’ > /etc/profile.d/mysql.sh. /etc/profile.d/mysql.sh
生效
这样mysql就可以用
如果创建家目录时是自动生成,可能会出现这样
给他删掉就ok
(8)安全初始化,脚本
/user/local/mysql/bin/mysql_secure_installation
二进制安装mysql 5.7
1 tar xvf mysql-5.7.26-el7-x86_64.tar.gz -C /usr/local/
2 useradd -r -s /bin/false mysql
3 cd /usr/local/
ln -s mysql-5.7.26-el7-x86_64/ mysql
4
echo ‘PATH=/usr/local/mysql/bin:$PATH’ > /etc/profile.d/mysql.sh
. /etc/profile.d/mysql.sh
5
这一步可以省略
mkdir /data/mysql
chown mysql.mysql /data/mysql
指定用户,工作路径(会自动生成/data/mysql)
mysqld --initialize --user=mysql --datadir=/data/mysql
要记住这一行----用户账号信息
2019-07-12T07:56:12.921021Z 1 [Note] A temporary password is generated for root@localhost: <G9sV#uF-2sr
6 vim /etc/my.cnf
[mysqld]
datadir=/data/mysql
socket=/data/mysql/mysql.sock
log-error=/data/mysql/mysql.log
pid-file=/data/mysql/mysql.pid
指定客户端可以找到sock文件
[client]
socket=/data/mysql/mysql.sock
7
cp mysql/support-files/mysql.server /etc/init.d/mysqld
chkconfig --add mysqld
chkconfig --list
service mysqld start
更改密码
8 mysqladmin -uroot -p"<G9sV#uF-2sr" password centos
9 mysql -pcentos
密码放在这儿
④ . 源码包安装
源码编译安装mariadb
安装包
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 libdb-cxx-devel
创建逻辑卷
t 指定 8e逻辑卷
fdisk
同步partprobe
创建物理卷
pvcreate /dev/sda6
创建卷组(指定PE为16M)
vgcreate vg0 /dev/sda6 -s 16M
创建逻辑卷
lvcreate -n mysql -l 100% free vg0
关联挂在data/mysql目录上
mkdir /data/mysql
格式化
mkfs.xfs /dev/vg0/mysql
写到 /etc/fstab文件中
vim /etc/fstab
UUID=9638a6f6-4715-44e7-9c95-6a010f5568ef /data/mysql ext4 defaults 0 0
mount -a 重读配置文件
做准备用户和数据目录
useradd –r –s /sbin/nologin –d /data/mysql/ 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 \
-DDEFAULT_CHARSET=utf8 \
-DDEFAULT_COLLATION=utf8_general_ci
编译安装
make && make install 并行执行
提示:如果出错,执行rm -f CMakeCache.txt
准备环境变量
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
五. 实现数据库的多实例(重点)
在一个机器上安装多个版本的数据库,但是相互独立
1.端口号独立
2.仓库独立(不同的位置)
mkdir -pv /mysql/{3306,3307,3308} /{data,bin.log,socket,pid,etc} 做三个文件夹里面的数据库都独立
./data-------->/var/liv/mysql/ 将对应的数据库文件放到对应的目录
mysql_install_db --datadir=/mysql/3306/data/ --user=mysql
mysql_install_db --datadir=/mysql/3307/data/ --user=mysql
mysql_install_db --datadir=/mysql/3308/data/ --user=mysql
修改属性
chown -R mysql.mysql /mysql
配置文件/mysql/etc------->/etc/my.conf
cp /etc/mycnf /mysql/3306/etc/
vim /mysql/3306/etc/
[mysqld]
port=3306
datadir=/mysql/3306/data/ 指定数据库目录
socate=/mysql/3306/socket/mysql.sock 指定scket文件
[mysqld_safe]
log-error=/mysql/3306/log/mariadb.log 指定日志
pid-file=/nysql/3306/pid/mariadb.pid
删掉这个
同理生成3307和3308的目录
用sed命令sed -i 's/3306/3307/ ' 文件
用yum安装1个低版本的3306------在
在
设置服务脚本/mysql/3306/bin----->
将脚本加上x权限后加入到/mysql/3306/bin/中
复制3306/bin到3307和3308中
然后用sed命令替换,脚本里面的port为3307和 3308
最后根据脚本----执行服务命令(启动)
/mysql/3306/bin/mysql start
这样就可以查看到队医你个的端口号
并且会生成对应的日志
用mysql 可以连接数据库
-S 指定哪个sock文件
设置口令
mysqladmin -S /mysql/3306/socket/mysql.sock passwd centos