随着MysqL被oracle公司收购之后,越来越多的公司都把自己的数据库转移到了mariadb数据库上面,其实MysqL数据库和mariadb数据库的区别只是换个名字而已,内在的东西一模一样,下面我们就来说一下在centos6和centos7上如何正确的安装mariadb吧
centos7上:
centos7上的yum源里是自带mariadb数据库的,所以我们就给自己的虚拟机装上mariadb的服务器端和客户端,再设置一下密码就可以使用啦。
- [root@J-7~]#yum-ygroupinstallmariadbmariadb-client#安装mariadb的服务器端和客户端
- Loadedplugins:fastestmirror
- Thereisnoinstalledgroupsfile.
- Mayberun:yumgroupsmarkconvert(seemanyum)
- base|3.6kB00:00:00
- elpl|4.3kB00:00:00
- Loadingmirrorspeedsfromcachedhostfile
- ResolvingDependencies
- -->Runningtransactioncheck
- ……
- Verifying:perl-IO-Compress-2.061-2.el7.noarch14/14
- Installed:
- MysqL-python.x86_640:1.2.5-1.el7mariadb.x86_641:5.5.52-1.el7
- mariadb-server.x86_641:5.5.52-1.el7MysqL-connector-odbc.x86_640:5.2.5-6.el7
- DependencyInstalled:
- libtool-ltdl.x86_640:2.4.2-21.el7_2perl-Compress-Raw-Bzip2.x86_640:2.061-3.el7
- perl-Compress-Raw-Zlib.x86_641:2.061-4.el7perl-DBD-MysqL.x86_640:4.023-5.el7
- perl-DBI.x86_640:1.627-4.el7perl-Data-Dumper.x86_640:2.145-3.el7
- perl-IO-Compress.noarch0:2.061-2.el7perl-Net-Daemon.noarch0:0.48-5.el7
- perl-PlRPC.noarch0:0.2020-14.el7unixODBC.x86_640:2.3.1-11.el7
- Complete!
- [root@J-7~]#systemctlstartmariadb.service#开启服务
- [root@J-7~]#systemctlenablemariadb.service#设置为开机启动
- Createdsymlinkfrom/etc/systemd/system/multi-user.target.wants/mariadb.serviceto/usr/lib/systemd/system/mariadb.service.
- [root@J-7~]#ss-nutl#查看一下Mariadb的3306端口开启了没有
- NetidStateRecv-QSend-QLocalAddress:PortPeerAddress:Port
- udpUNCONN00*:12518*:*
- udpUNCONN00*:29118*:*
- udpUNCONN00*:68*:*
- udpUNCONN00*:68*:*
- udpUNCONN00:::12518:::*
- udpUNCONN00:::24061:::*
- tcpLISTEN050*:3306*:*
- tcpLISTEN0128*:22*:*
- tcpLISTEN0100127.0.0.1:25*:*
- tcpLISTEN0128:::22:::*
- tcpLISTEN0100::1:25:::*
- [root@J-7~]#MysqL_secure_installation#用它自带的这个命令设置一些最基础的东西
- NOTE:RUNNINGALLPARTSOFTHISSCRIPTISRECOMMENDEDFORALLMariaDB
- SERVERSINPRODUCTIONUSE!PLEASEREADEACHSTEPCAREFULLY!
- InordertologintoMariaDBtosecureit,we'llneedthecurrent
- passwordfortherootuser.Ifyou'vejustinstalledMariaDB,and
- youhaven'tsettherootpasswordyet,thepasswordwillbeblank,soyoushouldjustpressenterhere.
- Entercurrentpasswordforroot(enterfornone):#没有密码要创建,按回车即可
- ERROR1045(28000):Accessdeniedforuser'root'@'localhost'(usingpassword:YES)
- Entercurrentpasswordforroot(enterfornone):
- ERROR1045(28000):Accessdeniedforuser'root'@'localhost'(usingpassword:YES)
- Entercurrentpasswordforroot(enterfornone):
- OK,successfullyusedpassword,movingon...
- SettingtherootpasswordensuresthatnobodycanlogintotheMariaDB
- rootuserwithouttheproperauthorisation.
- Setrootpassword?[Y/n]y#是否设置密码
- Newpassword:#输入密码
- Re-enternewpassword:#确认密码
- Passwordupdatedsuccessfully!
- Reloadingprivilegetables..
- ...Success!
- Bydefault,aMariaDBinstallationhasananonymoususer,allowinganyone
- tologintoMariaDBwithouthavingtohaveauseraccountcreatedfor
- them.Thisisintendedonlyfortesting,andtomaketheinstallation
- goabitsmoother.Youshouldremovethembeforemovingintoa
- productionenvironment.
- Removeanonymoususers?[Y/n]y#移除匿名登录?
- ...Success!
- Normally,rootshouldonlybeallowedtoconnectfrom'localhost'.This
- ensuresthatsomeonecannotguessattherootpasswordfromthenetwork.
- Disallowrootloginremotely?[Y/n]no#关闭远程登录?
- ...Success!
- Bydefault,MariaDBcomeswithadatabasenamed'test'thatanyonecan
- access.Thisisalsointendedonlyfortesting,andshouldberemoved
- beforemovingintoaproductionenvironment.
- Removetestdatabaseandaccesstoit?[Y/n]y#移除测试数据?
- -Droppingtestdatabase...
- ...Success!
- -Removingprivilegesontestdatabase...
- ...Success!
- Reloadingtheprivilegetableswillensurethatallchangesmadesofar
- willtakeeffectimmediately.
- Reloadprivilegetablesnow?[Y/n]y#确定你的配置?
- ...Success!
- Cleaningup...
- Alldone!Ifyou'vecompletedalloftheabovesteps,yourMariaDB
- installationshouldnowbesecure.
- ThanksforusingMariaDB!
- [root@J-7~]#MysqL-uroot-p#登录
- Enterpassword:#输入密码
- WelcometotheMariaDBmonitor.Commandsendwith;or\g.
- YourMariaDBconnectionidis12
- Serverversion:5.5.52-MariaDBMariaDBServer
- Copyright(c)2000,2016,Oracle,MariaDBCorporationAbandothers.
- Type'help;'or'\h'forhelp.Type'\c'toclearthecurrentinputstatement.
- MariaDB[(none)]>#正常使用
centos6:
centos6上默认的数据库是MysqL5.5的,这里我们要安装mariadb10.0的就得自己去Mariadb数据库的官方网站http://mariadb.org 下一个,来进行安装,如果你已经安装了自己卸载干净就行,我这里环境是最小安装的,这里我以二进制编译安装为例:
- [root@localhost~]#rz#把自己下载的包传上来
- [root@localhost~]#ls
- anaconda-ks.cfginstall.loginstall.log.syslogmariadb-5.5.57-linux-x86_64.tar.gz
- [root@localhost~]#getentpasswdMysqL#检查系统是否已经有了MysqL用户的信息
- [root@localhost~]#useradd-r-d/app/data-s/sbin/nologin-u36MysqL#创建MysqL用户,指定家目录和默认shell
- [root@localhost~]#idMysqL#查看一下用户信息
- uid=36(MysqL)gid=36(MysqL)groups=36(MysqL)
- [root@localhost~]#ll/app/data-d#看一下我们计划存放数据库的目录信息
- drwxr-xr-x2rootroot4096Jul2800:34/app/data
- [root@localhost~]#chownMysqL:MysqL/app/data/#修改目录的属组和属主
- [root@localhost~]#tarxfmariadb-5.5.57-linux-x86_64.tar.gz-C/usr/local/#将二进制包解压放到指定位置
- [root@localhost~]#cd/usr/local/
- [root@localhostlocal]#ll
- total44
- drwxr-xr-x.2rootroot4096Sep232011bin
- drwxr-xr-x.2rootroot4096Sep232011etc
- drwxr-xr-x.2rootroot4096Sep232011games
- drwxr-xr-x.2rootroot4096Sep232011include
- drwxr-xr-x.2rootroot4096Sep232011lib
- drwxr-xr-x.2rootroot4096Sep232011lib64
- drwxr-xr-x.2rootroot4096Sep232011libexec
- drwxr-xr-x12rootroot4096Jul2800:38mariadb-5.5.57-linux-x86_64
- drwxr-xr-x.2rootroot4096Sep232011sbin
- drwxr-xr-x.5rootroot4096Jul2720:51share
- drwxr-xr-x.2rootroot4096Sep232011src
- [root@localhostlocal]#ln-smariadb-5.5.57-linux-x86_64/MysqL/#给mariadb写一个软连接,切记不要后面的/
- ln:target`MysqL/'isnotadirectory:Nosuchfileordirectory
- [root@localhostlocal]#ln-smariadb-5.5.57-linux-x86_64/MysqL
- [root@localhostlocal]#ll#查看一下
- total44
- drwxr-xr-x.2rootroot4096Sep232011bin
- drwxr-xr-x.2rootroot4096Sep232011etc
- drwxr-xr-x.2rootroot4096Sep232011games
- drwxr-xr-x.2rootroot4096Sep232011include
- drwxr-xr-x.2rootroot4096Sep232011lib
- drwxr-xr-x.2rootroot4096Sep232011lib64
- drwxr-xr-x.2rootroot4096Sep232011libexec
- drwxr-xr-x12rootroot4096Jul2800:38mariadb-5.5.57-linux-x86_64
- lrwxrwxrwx1rootroot28Jul2800:39MysqL->mariadb-5.5.57-linux-x86_64/
- drwxr-xr-x.2rootroot4096Sep232011sbin
- drwxr-xr-x.5rootroot4096Jul2720:51share
- drwxr-xr-x.2rootroot4096Sep232011src
- [root@localhostlocal]#llMysqL/#看一下MysqL文件夹的属组和属主
- total192
- drwxr-xr-x2rootroot4096Jul2800:38bin
- -rw-r--r--1wangwang17987Jul1904:33COPYING
- drwxr-xr-x3rootroot4096Jul2800:38data
- -rw-r--r--1wangwang8245Jul1904:33EXCEPTIONS-CLIENT
- drwxr-xr-x3rootroot4096Jul2800:38include
- -rw-r--r--1wangwang8694Jul1904:33INSTALL-BINARY
- drwxr-xr-x3rootroot4096Jul2800:38lib
- drwxr-xr-x4rootroot4096Jul2800:38man
- drwxr-xr-x11rootroot4096Jul2800:37MysqL-test
- -rw-r--r--1wangwang108813Jul1904:33README
- drwxr-xr-x2rootroot4096Jul2800:38scripts
- drwxr-xr-x27rootroot4096Jul2800:38share
- drwxr-xr-x4rootroot4096Jul2800:38sql-bench
- drwxr-xr-x3rootroot4096Jul2800:38support-files
- [root@localhostlocal]#chgrp-RMysqLMysqL/#修改MysqL的属组
- [root@localhostlocal]#llMysqL/
- total192
- drwxr-xr-x2rootMysqL4096Jul2800:38bin
- -rw-r--r--1wangMysqL17987Jul1904:33COPYING
- drwxr-xr-x3rootMysqL4096Jul2800:38data
- -rw-r--r--1wangMysqL8245Jul1904:33EXCEPTIONS-CLIENT
- drwxr-xr-x3rootMysqL4096Jul2800:38include
- -rw-r--r--1wangMysqL8694Jul1904:33INSTALL-BINARY
- drwxr-xr-x3rootMysqL4096Jul2800:38lib
- drwxr-xr-x4rootMysqL4096Jul2800:38man
- drwxr-xr-x11rootMysqL4096Jul2800:37MysqL-test
- -rw-r--r--1wangMysqL108813Jul1904:33README
- drwxr-xr-x2rootMysqL4096Jul2800:38scripts
- drwxr-xr-x27rootMysqL4096Jul2800:38share
- drwxr-xr-x4rootMysqL4096Jul2800:38sql-bench
- drwxr-xr-x3rootMysqL4096Jul2800:38support-files
- [root@localhostlocal]#ll/etc/my.cnf#这个是系统自带的配置文件
- -rw-r--r--.1rootroot251Jan2706:25/etc/my.cnf
- [root@localhostlocal]#rpm-qf/etc/my.cnf#这个配置文件来自MysqL的包
- MysqL-libs-5.1.73-8.el6_8.x86_64
- [root@localhostlocal]#cat/etc/my.cnf#看一下这个配置的内容
- [MysqLd]
- datadir=/var/lib/MysqL
- socket=/var/lib/MysqL/MysqL.sock
- user=MysqL
- #Disablingsymbolic-linksisrecommendedtopreventassortedsecurityrisks
- symbolic-links=0
- [MysqLd_safe]
- log-error=/var/log/MysqLd.log
- pid-file=/var/run/MysqLd/MysqLd.pid
- [root@localhostlocal]#cdMysqL#进入到MysqL文件夹
- [root@localhostMysqL]#ls
- bindataincludelibMysqL-testscriptssql-bench
- COPYINGEXCEPTIONS-CLIENTINSTALL-BINARYmanREADMEsharesupport-files
- [root@localhostMysqL]#cdsupport-files/#查看一下support-files文件夹,里面全部都是模板文件
- [root@localhostsupport-files]#ls
- binary-configuremy-innodb-heavy-4G.cnfmy-small.cnfMysqL.server
- magicmy-large.cnfMysqLd_multi.serverSELinux
- my-huge.cnfmy-medium.cnfMysqL-log-rotate
- [root@localhostsupport-files]#mkdir/etc/MysqL#创建一个存放我们自己配置的文件夹
- [root@localhostsupport-files]#cpmy-huge.cnf/etc/MysqL/my.cnf#复制一个模板配置修改成适合自己用的
- [root@localhostsupport-files]#vim/etc/MysqL/my.cnf
- ……
- [MysqLd]
- datadir=/app/data#存放目录
- innodb_file_per_table=on#使用引擎(可不写)
- skip_name_resolve=on#禁止解析(可不写)
- port=3306
- socket=/tmp/MysqL.sock
- skip-external-locking
- key_buffer_size=384M
- max_allowed_packet=1M
- table_open_cache=512
- sort_buffer_size=2M
- read_buffer_size=2M
- ……
- [root@localhostsupport-files]#cd/usr/local/MysqL/#进入到MysqL文件夹
- [root@localhostMysqL]#scripts/MysqL_install_db--user=MysqL--datadir=/app/data/#执行包带的脚本并指定存放地址和执行用户
- InstallingMariaDB/MysqLsystemtablesin'/app/data/'...#一些关键说明
- 1707284:33:26[Warning]'THREAD_CONCURRENCY'isdeprecatedandwillberemovedinafuturerelease.
- 1707284:33:26[Note]./bin/MysqLd(MysqLd5.5.57-MariaDB)startingasprocess1872...
- OK
- Fillinghelptables...
- 1707284:33:27[Warning]'THREAD_CONCURRENCY'isdeprecatedandwillberemovedinafuturerelease.
- 1707284:33:27[Note]./bin/MysqLd(MysqLd5.5.57-MariaDB)startingasprocess1881...
- OK
- TostartMysqLdatboottimeyouhavetocopy
- support-files/MysqL.servertotherightplaceforyoursystem
- PLEASEREMEMBERTOSETAPASSWORDFORTHEMariaDBrootUSER!
- Todoso,starttheserver,thenissuethefollowingcommands:
- './bin/MysqLadmin'-urootpassword'new-password'
- './bin/MysqLadmin'-uroot-hlocalhost.localdomainpassword'new-password'
- Alternativelyyoucanrun:
- './bin/MysqL_secure_installation'
- whichwillalsogiveyoutheoptionofremovingthetest
- databasesandanonymoususercreatedbydefault.Thisis
- stronglyrecommendedforproductionservers.
- SeetheMariaDBKnowledgebaseathttp://mariadb.com/kborthe
- MysqLmanualformoreinstructions.
- YoucanstarttheMariaDBdaemonwith:
- cd'.';./bin/MysqLd_safe--datadir='/app/data/'
- YoucantesttheMariaDBdaemonwithMysqL-test-run.pl
- cd'./MysqL-test';perlMysqL-test-run.pl
- …………
- https://mariadb.org/get-involved/
- [root@localhostMysqL]#ls/app/data/#查看一下我们存放数据库的文件夹
- aria_log.00000001MysqLMysqL-bin.000002performance_schema
- aria_log_controlMysqL-bin.000001MysqL-bin.indextest
- [root@localhostMysqL]#cdsupport-files/
- [root@localhostMysqL]#pwd
- /usr/local/MysqL
- [root@localhostMysqL]#ll/app/data/
- total1084
- -rw-rw----1MysqLMysqL16384Jul2804:33aria_log.00000001
- -rw-rw----1MysqLMysqL52Jul2804:33aria_log_control
- drwx------2MysqLroot4096Jul2804:33MysqL
- -rw-rw----1MysqLMysqL30379Jul2804:33MysqL-bin.000001
- -rw-rw----1MysqLMysqL1038814Jul2804:33MysqL-bin.000002
- -rw-rw----1MysqLMysqL38Jul2804:33MysqL-bin.index
- drwx------2MysqLMysqL4096Jul2804:33performance_schema
- drwx------2MysqLroot4096Jul2804:33test
- [root@localhostMysqL]#ls
- bindataincludelibMysqL-testscriptssql-bench
- COPYINGEXCEPTIONS-CLIENTINSTALL-BINARYmanREADMEsharesupport-files
- [root@localhostMysqL]#cpsupport-files/MysqL.server/etc/init.d/MysqLd#复制一个启动服务脚本
- [root@localhostMysqL]#chkconfig--listMysqLd#查看服务
- serviceMysqLdsupportschkconfig,butisnotreferencedinanyrunlevel(run'chkconfig--addMysqLd')
- [root@localhostMysqL]#chkconfig--addMysqLd#把MysqLd服务加进去
- [root@localhostMysqL]#chkconfigMysqLdon#开机自启
- [root@localhostMysqL]#chkconfig--listMysqLd#看一下服务
- MysqLd 0:off 1:off 2:on 3:on 4:on 5:on 6:off
- [root@localhostMysqL]#serviceMysqLdstart#启动服务
- StartingMysqL.17072804:40:26MysqLd_safeLoggingto'/var/log/MysqLd.log'.#因没有日志文件夹报错
- 17072804:40:26MysqLd_safeStartingMysqLddaemonwithdatabasesfrom/app/data
- /usr/local/MysqL/bin/MysqLd_safe_helper:Can'tcreate/writetofile'/var/log/MysqLd.log'(Errcode:13)
- ERROR!
- [root@localhostMysqL]#cat/etc/my.cnf#看一下系统自带的MysqL配置
- [MysqLd]
- datadir=/var/lib/MysqL
- socket=/var/lib/MysqL/MysqL.sock
- user=MysqL
- #Disablingsymbolic-linksisrecommendedtopreventassortedsecurityrisks
- symbolic-links=0
- [MysqLd_safe]
- log-error=/var/log/MysqLd.log#日志正确存放地址
- pid-file=/var/run/MysqLd/MysqLd.pid
- [root@localhostMysqL]#touch/var/log/MysqLd.log#创建一个日志文件
- [root@localhostMysqL]#chownMysqL/var/log/MysqLd.log#修改属主,给它个写的权限
- [root@localhostMysqL]#serverMysqLdstart
- -bash:server:commandnotfound
- [root@localhostMysqL]#serviceMysqLdstart#启动服务
- StartingMysqL.17072804:45:01MysqLd_safeLoggingto'/var/log/MysqLd.log'.
- 17072804:45:01MysqLd_safeStartingMysqLddaemonwithdatabasesfrom/app/data
- .SUCCESS!
- [root@localhostMysqL]#ss-ntl#查看一下端口,3306开启了
- StateRecv-QSend-QLocalAddress:PortPeerAddress:Port
- LISTEN050*:3306*:*
- LISTEN0128:::22:::*
- LISTEN0128*:22*:*
- LISTEN0100::1:25:::*
- LISTEN0100127.0.0.1:25*:*
- [root@localhostMysqL]#MysqL#直接登录使用,报错命令没找到
- -bash:MysqL:commandnotfound
- [root@localhostMysqL]#pwd
- /usr/local/MysqL
- [root@localhostMysqL]#ls
- bindataincludelibMysqL-testscriptssql-bench
- COPYINGEXCEPTIONS-CLIENTINSTALL-BINARYmanREADMEsharesupport-files
- [root@localhostMysqL]#cdbin/
- [root@localhostbin]#vim/etc/profile.d/MysqL.sh#写一个配置文件,把MysqL放到bin下
- exportPATH=/usr/local/MysqL/bin:$PATH
- [root@localhostbin]#./etc/profile.d/MysqL.sh#执行一下
- [root@localhostbin]#MysqL#登录一下,可以匿名登录肯定不行啊,出去设置一下
- WelcometotheMariaDBmonitor.Commandsendwith;or\g.
- YourMariaDBconnectionidis2
- Serverversion:5.5.57-MariaDBMariaDBServer
- Copyright(c)2000,2017,MariaDBCorporationAbandothers.
- Type'help;'or'\h'forhelp.Type'\c'toclearthecurrentinputstatement.
- MariaDB[(none)]>exit
- Bye
- [root@localhostbin]#MysqL_se
- MysqL_secure_installationMysqL_setpermission
- [root@localhostbin]#MysqL_secure_installation#执行脚本,完成基本的安全设置
- /usr/local/MysqL/bin/MysqL_secure_installation:line393:find_MysqL_client:commandnotfound
- NOTE:RUNNINGALLPARTSOFTHISSCRIPTISRECOMMENDEDFORALLMariaDB
- SERVERSINPRODUCTIONUSE!PLEASEREADEACHSTEPCAREFULLY!
- InordertologintoMariaDBtosecureit,soyoushouldjustpressenterhere.
- Entercurrentpasswordforroot(enterfornone):
- OK,movingon...
- SettingtherootpasswordensuresthatnobodycanlogintotheMariaDB
- rootuserwithouttheproperauthorisation.
- Setrootpassword?[Y/n]y#设置密码?
- Newpassword:#第一次输入密码
- Re-enternewpassword:#确认密码
- Passwordupdatedsuccessfully!
- Reloadingprivilegetables..
- ...Success!
- Bydefault,andtomaketheinstallation
- goabitsmoother.Youshouldremovethembeforemovingintoa
- productionenvironment.
- Removeanonymoususers?[Y/n]y#禁止匿名用户?
- ...Success!
- Normally,rootshouldonlybeallowedtoconnectfrom'localhost'.This
- ensuresthatsomeonecannotguessattherootpasswordfromthenetwork.
- Disallowrootloginremotely?[Y/n]n#禁止root远程登录?
- ...skipping.
- Bydefault,andshouldberemoved
- beforemovingintoaproductionenvironment.
- Removetestdatabaseandaccesstoit?[Y/n]y#移除系统的测试数据?
- -Droppingtestdatabase...
- ...Success!
- -Removingprivilegesontestdatabase...
- ...Success!
- Reloadingtheprivilegetableswillensurethatallchangesmadesofar
- willtakeeffectimmediately.
- Reloadprivilegetablesnow?[Y/n]y#确认加载配置?
- ...Success!
- Cleaningup...
- Alldone!Ifyou'vecompletedalloftheabovesteps,yourMariaDB
- installationshouldnowbesecure.
- ThanksforusingMariaDB!
- [root@localhostbin]#MysqL-uroot-p#登录
- Enterpassword:#输入密码
- WelcometotheMariaDBmonitor.Commandsendwith;or\g.
- YourMariaDBconnectionidis10
- Serverversion:5.5.57-MariaDBMariaDBServer
- Copyright(c)2000,MariaDBCorporationAbandothers.
- Type'help;'or'\h'forhelp.Type'\c'toclearthecurrentinputstatement.
- MariaDB[(none)]>#安装完成