当前环境

ip : 192.168.1.153

系统版本

CentOS6.5中使用通用二进制格式安装mariadb-5.5.36_ 二进制格式

当前虚拟机还没安装任何版本的mysqlmariadb:

CentOS6.5中使用通用二进制格式安装mariadb-5.5.36_ 二进制格式_02

注意如果此前已经安装过mysql-serverrpm包而希望使用通用二进制格式安装mariadb时一定要把mysql-server完全卸载或把mysqld服务关掉并确保它不会开机自动启动。使用通用二进制格式安装mariadb之前尽可能不要安装mysql-server

 

使用通用二进制格式安装mariadb

1、下载mariadb-5.5.36-linux-x86_64.tar.gz

 

2、解压、创建软链接软链接为以后mariadb的升级提供了便利

#使用-C选项指定展开归档的目录

[root@localhost ~]# tar  xf  mariadb-5.5.36-linux-x86_64.tar.gz  -C  /usr/local  
[root@localhost ~]# cd /usr/local


#mariadb-5.5.36-linux-x86_64创建链接目录目录名一定要为mysql

[root@localhost local]# ln -sv mariadb-5.5.36-linux-x86_64 mysql
[root@localhost local]# cd mysql


3、lvm逻辑卷作为数据库数据的存放位置

建议在生产环境中最好把数据库的数据存放到lvm的逻辑卷中底层lvm应该通过硬件raidraid10来搭建。

好处

 随着数据的增多存储空间不够用时能动态扩展存储空间大小。

 能利用lvm逻辑卷的快照功能对数据进行备份。

注意实际生产环境中不要把数据库的数据存放到系统磁盘的逻辑卷上以免系统磁盘损坏而导致数据库的数据丢失。

 

(1)在非系统磁盘上创建逻辑卷mydata 

[root@localhost ~]# fdisk -l /dev/sdb1 
Disk /dev/sdb1: 32.2 GB, 32218389504 bytes
[root@localhost ~]# pvcreate /dev/sdb1
Physical volume "/dev/sdb1" successfully created
[root@localhost ~]# vgcreate myvg /dev/sdb1
Volume group "myvg" successfully created
[root@localhost ~]# lvcreate -L 10G -n mydata myvg
Logical volume "mydata" created
[root@localhost ~]# lvs
LV     VG   Attr       LSize  Pool Origin Data%  Move Log Cpy%Sync Convert
mydata myvg -wi-a----- 10.00g


 

(2)格式化逻辑卷mydata

[root@localhost ~]# mke2fs -t ext4 -m 3 -L MYDATA -b 4096 /dev/myvg/mydata

 

(3)逻辑卷mydata挂载至/mydata目录下并在该目录下新建一个目录data来存放数据。

[root@localhost ~]# mkdir /mydata
[root@localhost ~]# vim /etc/fstab  #设定开机自动挂载


CentOS6.5中使用通用二进制格式安装mariadb-5.5.36_ 二进制格式_03 

[root@localhost ~]# mount -a 
[root@localhost ~]# mount
/dev/mapper/myvg-mydata on /mydata type ext4 (rw)
[root@localhost ~]# mkdir /mydata/data

 

(4)创建mysql系统用户和mysql系统组

[root@localhost ~]# groupadd -r mysql
[root@localhost ~]# useradd -g mysql -r mysql
[root@localhost ~]# id mysql
uid=496(mysql) gid=493(mysql) groups=493(mysql)


(5)为了安全运行mysql服务使用的是普通用户不能使用管理员身份运行mysql

/mydata/data目录及其目录下的所有文件的属主、属组都设成mysql

[root@localhost ~]# chown -R mysql.mysql /mydata/data
[root@localhost ~]# ll -d  /mydata/data
drwxr-xr-x 2 mysql mysql 4096 Aug  9 06:30 /mydata/data


#修改/usr/local/mysql/目录及其目录下所有的文件的属主为root属组为mysql 因是编译安装为了能让mysql系统用户正常运行属组一定要设为mysql

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


4、为mysql提供配置文件

[root@localhost ~]# mkdir  /etc/mysql
[root@localhost ~]# cp  /usr/local/mysql/support-files/my-large.cnf  /etc/mysql/my.cnf


注意不能把my-large.cnf复制成/etc/my.cnf因为系统默认安装了mysql-libs(它已经提供/etc/my.cnf)为了避免发生错误把配置文件放到/etc/mysql/my.cnf

CentOS6.5中使用通用二进制格式安装mariadb-5.5.36_mariadb _04

编辑 /etc/mysql/my.cnf并在[mysqld]中指定数据库中数据存放的位置

[mysqld]
# Try number of CPU's*2 for thread_concurrency  #指定最大并发线程数
thread_concurrency = 4 #改为自身cpu核心数*2
datadir = /mydata/data #数据库中数据存放的路径


5、初始化mysql数据库

注意如果你按以下方式执行会发生错误不能在 scripts目录下执行mysql_install_db脚本因为该脚本依赖于mysql目录下的/bin/my_print_defaults

[root@localhost mysql]# cd scripts/
[root@localhost scripts]# ./mysql_install_db --datadir=/mydata/data --user=mysql 
FATAL ERROR: Could not find ./bin/my_print_defaults


正常做法

[root@localhost scripts]# cd ..
[root@localhost mysql]# scripts/mysql_install_db --datadir=/mydata/data --user=mysql


查看/mydata/data目录中是否已生成mysql默认数据库

[root@localhost mysql]# ls /mydata/data
aria_log.00000001  mysql             mysql-bin.000002  performance_schema
aria_log_control   mysql-bin.000001  mysql-bin.index   test

 

6、mysql提供服务启动脚本

[root@localhost mysql]# cp support-files/mysql.server /etc/rc.d/init.d/mysqld
[root@localhost mysql]# ll /etc/rc.d/init.d/mysqld  # 确保该脚本有执行权限
-rwxr-xr-x 1 root root 11844 Aug  9 07:59 /etc/rc.d/init.d/mysqld
[root@localhost mysql]# chkconfig --add mysqld  # 把mysqld添加到服务列表中
[root@localhost mysql]# chkconfig --list mysqld  # 默认开机自动启动 
mysqld         0:off1:off2:on3:on4:on5:on6:off


 

7导出mysql的二进制文件、头文件、库文件、帮助文档

导出二进制程序

[root@localhost mysql]# vim /etc/profile.d/mysql.sh
[root@localhost mysql]# cat /etc/profile.d/mysql.sh
export PATH=/usr/local/mysql/bin:$PATH
[root@localhost mysql]# source /etc/profile.d/mysql.sh
[root@localhost mysql]# echo $PATH
/usr/local/mysql/bin:/usr/lib64/qt-3.3/bin:/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/root/bin


 

导出头文件

[root@localhost mysql]# ln -s /usr/local/mysql/include/ /usr/include/mysql
[root@localhost mysql]# ll /usr/include/mysql
lrwxrwxrwx 1 root root 25 Aug  9 08:13 /usr/include/mysql -> /usr/local/mysql/include/


 

导出帮助文档

[root@localhost mysql]# vim /etc/man.config 
MANPATH /usr/loacl/mysql/man  #添加此项


 

导出库文件

[root@localhost mysql]# echo "/usr/local/mysql/lib" > /etc/ld.so.conf.d/mysql.conf
[root@localhost mysql]# ldconfig -v | grep mysql
/usr/local/mysql/lib:  #新版本的库文件
libmysqld.so.18 -> libmysqld.so.18
libmysqlclient.so.18 -> libmysqlclient_r.so.18.0.0
/usr/lib64/mysql:  #旧版本的库文件
libmysqlclient.so.16 -> libmysqlclient.so.16.0.0
libmysqlclient_r.so.16 -> libmysqlclient_r.so.16.0.0


 

8、启动服务

[root@localhost mysql]# service mysqld start
Starting MySQL.....                                        [  OK  ]
[root@localhost mysql]# ss -tnl | grep 3306
LISTEN     0      50                        *:3306                     *:*  
[root@localhost ~]# ll /tmp/*.sock
srwxrwxrwx 1 mysql mysql 0 Aug 19 00:59 /tmp/mysql.sock

上面这个文件由服务产生本地客户端可以此设备文件连接Mysql服务

 

注意

mysqld服务停止时该mysql.sock文件也会被删除

[root@localhost ~]# service mysqld stop
Shutting down MySQL...                                     [  OK  ]
[root@localhost ~]# ll /tmp/*.sock
ls: cannot access /tmp/*.sock: No such file or directory


 

9、登录mysql服务器

[root@localhost mysql]# mysql
Welcome to the MariaDB monitor.  Commands end with ; or \g.
Your MariaDB connection id is 2
Server version: 5.5.36-MariaDB-log MariaDB Server
Copyright (c) 2000, 2014, Oracle, Monty Program Ab and others.
Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
MariaDB [(none)]> SHOW DATABASES;
+--------------------+
| Database           |
+--------------------+
| information_schema |
| mysql              |
| performance_schema |
| test               |
+--------------------+
4 rows in set (0.07 sec)


 

能正常访问!