您的位置:首页 > 数据库 > MariaDB

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

2014-08-26 19:40 549 查看
当前环境
ip : 192.168.1.153
系统版本



当前虚拟机还没安装任何版本的mysql和mariadb包:



注意如果此前已经安装过mysql-server的rpm包而希望使用通用二进制格式安装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  #设定开机自动挂载





[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



编辑 /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)


能正常访问!

本文出自 “恒则有成” 博客,请务必保留此出处http://hjqjk.blog.51cto.com/5970897/1545371
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: