本文共 12360 字,大约阅读时间需要 41 分钟。
http://fanqie.blog.51cto.com/9382669/1708239
一、下载mariadb。
就是简单给大家提个醒吧,像我一样粗心的朋友可能会这样。
前几天下载mariadb的时候发现不能下载,网站可以打开但是不能下载。
这是因为默认所转到的下载站是东软,但是这个站里没有对应的下载路径。在下载页面只要换一个下载站就可以了。
如mariadb5.5的下载页面的右下角:
安装介绍:
环境:
系统:CentOS6.5_x64
软件:cmake,mariadb5.5
mariadb_10+要使用gcc5++. 可以看这里
安装方式:
1、Vendor: 操作系统自带的rpm包
2、MySQL官方rpm包
3、通用二进制格式
4、源码编译
我们这里选择的是源码编译安装。
二、安装cmake。
下载地址:
1 2 3 4 5 | [root@nfs cmake- 3.4 . 0 -rc2]# ls Auxiliary CMakeGraphVizOptions.cmake CompileFlags.cmake CTestConfig.cmake Help Source bootstrap CMakeLists.txt configure CTestCustom.cmake. in Licenses Templates CMakeCPack.cmake CMakeLogo.gif CONTRIBUTING.rst DartConfig.cmake Modules Tests CMakeCPackOptions.cmake. in cmake_uninstall.cmake. in Copyright.txt doxygen.config README.rst Utilities |
可以通过configure来自定义安装,也可以执行目录下的bootstrap脚本来自动安装。
必备环境:gcc、gcc-c++
在用configure或bootstrap配置完以后会提示运行gmake,在linux上面gmake就是make,是一个符号链接。
1 2 3 | [root@nfs cmake- 3.4 . 0 -rc2]# ./bootstrap [root@nfs cmake- 3.4 . 0 -rc2]# make [root@nfs cmake- 3.4 . 0 -rc2]# make install |
三、安装mariadb。
下载地址:
1、创建用以运行mysql服务的用户。
1 2 3 4 | [root@nfs ~]# groupadd -r -g 3306 mysql [root@nfs ~]# useradd -r -s /sbin/nologin -g mysql -u 3306 mysql [root@nfs ~]# id mysql uid= 3306 (mysql) gid= 3306 (mysql) groups= 3306 (mysql) |
这里无所谓,直接创建用户也一样。
2、创建数据库目录。最好在单独的磁盘上,不要与系统在一起。我这里做实验就无所谓了。
1 2 3 | [root@nfs ~]# mkdir -pv /mydata/data mkdir: created directory `/mydata' mkdir: created directory `/mydata/data' |
3、cmake配置选项。
不同之处:
./configure | cmake . | 检查配置选项,生成编译配置文件 |
./configure --help | cmake . -LH or ccmake . | 查看配置选项 |
make clean | rm CMakeCache.txt | 清理此前的编译状态 |
先来看看配置选项,而且cmake也会检测当前所必须的一些工具或库。
1 2 3 4 5 6 7 8 | [root@nfs mariadb- 5.5 . 46 ]# cmake . -LH . . -- Could NOT find Curses (missing: CURSES_LIBRARY CURSES_INCLUDE_PATH) CMake Error at cmake/readline.cmake: 85 (MESSAGE): Curses library not found. Please install appropriate package , remove CMakeCache.txt and rerun cmake.On Debian/Ubuntu, package name is libncurses5-dev, on Redhat and derivates it is ncurses-devel. |
报错缺少curses库文件,而且也提示安装ncurses-devel了。报错信息在所输出的配置选项上方。
安装完ncurses-devel以后,要删除CMakeCache.txt文件。
1 2 3 4 5 | [root@nfs mariadb- 5.5 . 46 ]# yum install ncurses-devel -y [root@nfs mariadb- 5.5 . 46 ]# rm CMakeCache.txt -f [root@nfs mariadb- 5.5 . 46 ]# cmake . -LH . Warning: Bison executable not found in PATH |
这个bison影响不大,大家可以装上,这里就不贴了。
1 2 3 | [root@nfs mariadb- 5.5 . 46 ]# cmake . -DCMAKE_INSTALL_PREFIX=/usr/local/mysql -DMYSQL_DATADIR=/mydata/data -DWITH_ARCHIVE_STORAGE_ENGINE=on -DWITH_BLACKHOLE_STORAGE_ENGINE=on -DWITH_READLINE=on -DWITH_SSL=system -DWITH_ZLIB=system -DWITH_XTRADB_STORAGE_ENGINE=on [root@nfs mariadb- 5.5 . 46 ]# make [root@nfs mariadb- 5.5 . 46 ]# make install |
选项前面为什么加上-D,好像是表示默认属性,这点不清楚。
-DCMAKE_INSTALL_PREFIX 表示安装位置,我们一般习惯性的还是用mysql名称的目录,而且也避免有的应用使用的是这个目录。
-DMYSQL_DATADIR 表示数据存储目录
-DWITH_ARCHIVE_STORAGE_ENGINE 存储引擎archive,默认是不启用的。因为非常高的批量插入速度和实时压缩功能,和相对较差的查询功能,所以经常被用来当做仓库使用。
-DWITH_BLACKHOLE_STORAGE_ENGINE 黑洞引擎,写入的任何数据都会消失。
-DWITH_READLINE=on 附带readline行编辑库
-DWITH_SSL=system 使用系统的ssl库,要安装openssl-devel包。
-DWITH_ZLIB=system 使用系统的zlib库。
-DWITH_XTRADB_STORAGE_ENGINE 存储引擎xtradb,可以说是innodb的升级版。这个默认就是安装的。
这个配置所必须的openssl-devel要装上,zlib-devel一般默认是安装的。
cmake报错:
-- Could NOT find Boost
安装boost-devel
-- Looking for event.h - not found
安装libevent-devel。
有时候所报的软件名称不全可以用yum和grep来找到,如:“yum list all | grep event”
开始漫长的等待,编译完成并安装以后就跟下载的通用二进制包一样了。
4、初始化
在mariadb的安装目录中。
1 2 3 | [root@nfs mysql]# ls bin COPYING.LESSER EXCEPTIONS-CLIENT INSTALL-BINARY man README share support-files COPYING data include lib mysql-test scripts sql-bench |
1 2 3 4 | [root@nfs mysql]# chown -R mysql:mysql . #安装目录属主属组为mysql [root@nfs mysql]# scripts/mysql_install_db --datadir=/mydata/data --user=mysql #初始化数据库 [root@nfs mysql]# chown -R root . #安装目录属主为root [root@nfs mysql]# chown -R mysql:mysql /mydata/data #数据库目录属主组为mysql |
1 2 | [root@nfs mysql]# ls /mydata/data aria_log. 00000001 aria_log_control mysql performance_schema test |
看来已经生成系统数据库了。
1 2 3 4 5 6 7 8 9 10 11 12 | [root@nfs mysql]# cp support-files/my-large.cnf /etc/my.cnf cp: overwrite `/etc/my.cnf'? y [root@nfs mysql]# cp support-files/mysql.server /etc/init.d/mysqld [root@nfs mysql]# chmod +x /etc/init.d/mysqld [root@nfs mysql]# chkconfig --add mysqld [root@nfs mysql]# chkconfig --list mysqld mysqld 0 :off 1 :off 2 :on 3 :on 4 :on 5 :on 6 :off [root@nfs mysql]# vim /etc/my.cnf thread_concurrency = 4 #cpu的二倍, 在 5.6 版本中去掉了。 datadir = /mydata/data #添加这一行,数据库位置。 innodb_file_per_table = on #独立的innodb表空间文件。 |
配置文件如下
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 | # For advice on how to change settings please see # http: //dev.mysql.com/doc/refman/5.6/en/server-configuration-defaults.html # *** DO NOT EDIT THIS FILE. It's a template which will be copied to the # *** default location during install, and will be replaced if you # *** upgrade to a newer version of MySQL. [client] port = 3306 socket=/ var /lib/mysql/mysql.sock default -character- set = utf8 [mysqld] # Remove leading # and set to the amount of RAM for the most important data # cache in MySQL. Start at 70 % of total RAM for dedicated server, else 10 %. # innodb_buffer_pool_size = 128M # Remove leading # to turn on a very important data integrity option: logging # changes to the binary log between backups. # log_bin # These are commonly set , remove the # and set as required. basedir = /usr/local/mysql datadir = /mydata/data port = 3306 socket = / var /lib/mysql/mysql.sock user = mysql innodb_file_per_table = on #Disabling symbolic-links is recommended to prevent assorted security risks symbolic-links = 0 default -time-zone = system default -storage-engine = InnoDB [mysqld_safe] log-error = / var /log/mysql/mysqld.log pid-file = / var /run/msyqld/mysqld.pid # server_id = ..... # socket = ..... # Remove leading # to set options mainly useful for reporting servers. # The server defaults are faster for transactions and fast SELECTs. # Adjust sizes as needed, experiment to find the optimal values. # join_buffer_size = 128M # sort_buffer_size = 2M # read_rnd_buffer_size = 2M sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES |
番外:
配置文件中的:
[mysqld]是作用于服务端。
[mysql]只是作用于mysql组件的客户端。
[client]是作用于所有客户端组件。
尝试启动:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 | [root@nfs mysql]# service mysqld start Starting MySQL... [ OK ] [root@nfs mysql]# ss -tnlp LISTEN 0 50 *: 3306 *:* users:(( "mysqld" , 50837 , 15 )) [root@nfs mysql]# ll /mydata/data total 28720 -rw-rw----. 1 mysql mysql 16384 Oct 30 11 : 51 aria_log. 00000001 -rw-rw----. 1 mysql mysql 52 Oct 30 11 : 51 aria_log_control -rw-rw----. 1 mysql mysql 18874368 Oct 30 12 : 08 ibdata1 -rw-rw----. 1 mysql mysql 5242880 Oct 30 12 : 08 ib_logfile0 -rw-rw----. 1 mysql mysql 5242880 Oct 30 12 : 08 ib_logfile1 drwx------. 2 mysql mysql 4096 Oct 30 11 : 51 mysql -rw-rw----. 1 mysql mysql 245 Oct 30 12 : 08 mysql-bin. 000001 -rw-rw----. 1 mysql mysql 19 Oct 30 12 : 08 mysql-bin.index -rw-r-----. 1 mysql mysql 1904 Oct 30 12 : 08 nfs.star.com.err -rw-rw----. 1 mysql mysql 6 Oct 30 12 : 08 nfs.star.com.pid drwx------. 2 mysql mysql 4096 Oct 30 11 : 51 performance_schema drwx------. 2 mysql mysql 4096 Oct 30 11 : 51 test [root@nfs mysql]# |
启动正常,我们先把服务停止,再做下后续操作。
1 2 | [root@nfs mysql]# service mysqld stop Shutting down MySQL. [ OK ] |
5、后续操作。
执行程序的目录添加进path,lib目录添加到ld程序,man文档,include头文件。
1 2 3 4 5 6 7 8 | [root@nfs mysql]# vim /etc/profile.d/mysql.sh export PATH=/usr/local/mysql/bin:$PATH [root@nfs mysql]# . /etc/profile.d/mysql.sh [root@nfs mysql]# ln -s /usr/local/mysql/ include /mysql/ /usr/ include /mysql [root@nfs mysql]# vim /etc/man.config MANPATH /usr/local/mysql/man [root@nfs mysql]# vim /etc/ld.so.conf.d/mysql- 5.5 .conf /usr/local/mysql/lib |
查看其它信息:
1 2 3 4 5 6 7 8 9 10 | [root@nfs mysql]# mysqld --verbose --help | less mysqld Ver 5.5 . 46 -MariaDB-log for Linux on x86_64 (Source distribution) Copyright (c) 2000 , 2015 , Oracle, MariaDB Corporation Ab and others. Starts the MariaDB database server. Usage: mysqld [OPTIONS] Default options are read from the following files in the given order: /etc/my.cnf /etc/mysql/my.cnf ~/.my.cnf |
配置文件的读取顺序。相同配置后面的覆盖前面的。所有配置文件会合并到一起生效。
并显示出配置文件中可用的服务器变量。 定义的和没有定义的所有变量。还有启动时可用的选项。
把安装目录重命名再符号链接成安装路径的目录,这样以后升级版本,直接作符号链接就可以了。
1 2 3 4 5 6 7 8 | [root@nfs mysql]# cd .. [root@nfs local]# ls bin doc etc games include lib lib64 libexec mysql sbin share src [root@nfs local]# mv mysql mysql5. 5.46 [root@nfs local]# ln -s mysql5. 5.46 mysql [root@nfs local]# ll lrwxrwxrwx. 1 root root 11 Oct 30 12 : 40 mysql -> mysql5. 5.46 drwxr-xr-x. 12 root mysql 4096 Oct 30 12 : 23 mysql5. 5.46 |
四、数据库必要操作。
删除匿名用户, 给root创建密码
1 2 | [root@nfs local]# service mysqld start Starting MySQL.. [ OK ] |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 | [root@nfs local]# mysql Welcome to the MariaDB monitor. Commands end with ; or \g. Your MariaDB connection id is 2 Server version: 5.5 . 46 -MariaDB-log Source distribution Copyright (c) 2000 , 2015 , Oracle, MariaDB Corporation Ab and others. Type 'help;' or '\h' for help. Type '\c' to clear the current input statement. MariaDB [(none)]> SELECT user,host,password FROM mysql.user; +------+--------------+----------+ | user | host | password | +------+--------------+----------+ | root | localhost | | | root | nfs.star.com | | | root | 127.0 . 0.1 | | | root | :: 1 | | | | localhost | | | | nfs.star.com | | +------+--------------+----------+ 6 rows in set ( 0.00 sec) |
删除匿名用户或不用的:
1 2 3 4 5 6 7 8 | MariaDB [(none)]> DROP USER '' @ 'localhost' ; Query OK, 0 rows affected ( 0.00 sec) MariaDB [(none)]> DROP USER '' @ 'nfs.star.com' ; Query OK, 0 rows affected ( 0.00 sec) MariaDB [(none)]> DROP USER 'root' @ '::1' ; Query OK, 0 rows affected ( 0.00 sec) |
root用户设置密码:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 | MariaDB [(none)]> UPDATE mysql.user SET password=PASSWORD( 'abcd1234' ) WHERE user= 'root' ; Query OK, 3 rows affected ( 0.03 sec) Rows matched: 3 Changed: 3 Warnings: 0 MariaDB [(none)]> FLUSH PRIVILEGES; Query OK, 0 rows affected ( 0.00 sec) MariaDB [(none)]> SELECT user,host,password FROM mysql.user; +------+--------------+-------------------------------------------+ | user | host | password | +------+--------------+-------------------------------------------+ | root | localhost | *4AD47E08DAE2BD4F0977EED5D23DC901359DF617 | | root | nfs.star.com | *4AD47E08DAE2BD4F0977EED5D23DC901359DF617 | | root | 127.0 . 0.1 | *4AD47E08DAE2BD4F0977EED5D23DC901359DF617 | +------+--------------+-------------------------------------------+ 3 rows in set ( 0.00 sec) MariaDB [(none)]> |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 | MariaDB [(none)]> \q Bye [root@nfs local]# mysql -uroot -p Enter password: Welcome to the MariaDB monitor. Commands end with ; or \g. Your MariaDB connection id is 6 Server version: 5.5 . 46 -MariaDB-log Source distribution Copyright (c) 2000 , 2015 , Oracle, MariaDB Corporation Ab and others. Type 'help;' or '\h' for help. Type '\c' to clear the current input statement. MariaDB [(none)]> MariaDB [(none)]> SHOW ENGINES; +--------------------+---------+----------------------------------------------------------------------------+--------------+------+------------+ | Engine | Support | Comment | Transactions | XA | Savepoints | +--------------------+---------+----------------------------------------------------------------------------+--------------+------+------------+ | MEMORY | YES | Hash based, stored in memory, useful for temporary tables | NO | NO | NO | | CSV | YES | CSV storage engine | NO | NO | NO | | Aria | YES | Crash-safe tables with MyISAM heritage | NO | NO | NO | | BLACKHOLE | YES | /dev/ null storage engine (anything you write to it disappears) | NO | NO | NO | | InnoDB | DEFAULT | Percona-XtraDB, Supports transactions, row-level locking, and foreign keys | YES | YES | YES | | MRG_MYISAM | YES | Collection of identical MyISAM tables | NO | NO | NO | | ARCHIVE | YES | Archive storage engine | NO | NO | NO | | MyISAM | YES | MyISAM storage engine | NO | NO | NO | | PERFORMANCE_SCHEMA | YES | Performance Schema | NO | NO | NO | +--------------------+---------+----------------------------------------------------------------------------+--------------+------+------------+ 9 rows in set ( 0.01 sec) MariaDB [(none)]> |
查看有哪些存储引擎。