Centos 7中设置二进制数据库mariadb最新版本

       Centos 7中设置二进制数据库mariadb最新版本:

  一:实验背景;
 
  在马哥教育学习到MYSQL这章时,留作业练习的实验
 
  二:实验准备;
 
  1、先检查虚拟机上是否存在mariadb: rpm -qa   mariadb*,若有的话,则卸载;
 
  2、通过yum info mariadb查找到mariadb的官网,进去下载mariadb的最新版本mariadb-10.2.9-linux-x86_64.tar.gz;
 
  三:实验步骤;
 
  1、创建mysql用户;
 
  [root@localhost ~]# getent passwd mysql   #查一下该用户是否存在,不存在的话,就执行下面的代码创建
  [root@localhost ~]# useradd -d /app/mysqldb -r -m -s /sbin/nologin mysql   #创建mysql账户并指明家目录(可以自定义),为了安全起见将shell设为nologin
  2、将下载的最新安装包拷进linux虚拟机,并解压缩;
 
  [root@localhost ~]# rz          #用rz将windows下下载好的安装包拷进linux
  [root@localhost ~]# tar xvf mariadb-10.2.8-linux-x86_64.tar.gz  -C /usr/local/
       #解压缩(因为是已经编译好的二进制文件,所以目录已经被制定好,必须放在/usr/local,故加上-C解压缩到指定目录)
  [root@localhost ~]# cd /usr/local/             #进到这个目录下面
  [root@localhost /usr/local]# ln -s mariadb-10.2.8-linux-x86_64/ mysql   #创建软链接(因为名字必须是mysql)
  3、创建mysql的配置文件;
 
  [root@localhost /usr/local]# cd /usr/local/mysql/         #进入到刚创建的软链接目录下
  [root@localhost /usr/local/mysql]# mkdir /etc/mysql/      # 因为编译时默认配置文件放在/etc/mysql下,所以创建一个mysql的目录
  [root@localhost /usr/local/mysql]# ls support-files/      #配置文件已经被准备好,放在了/usr/local/mysql/support-files目录下
  binary-configure        mysqld_multi.server
  magic                   mysql-log-rotate
  my-huge.cnf             mysql.server
  my-innodb-heavy-4G.cnf  policy
  my-large.cnf            wsrep.cnf
  my-medium.cnf           wsrep_notify
  my-small.cnf
  [root@localhost /usr/local/mysql]# cp support-files/my-huge.cnf  /etc/mysql/my.cnf #有好几个,选择其中一个复制到特定目录下/etc/mysql/并改名为特定的配置文件名my.cnf
  [root@localhost /usr/local/mysql]# vim /etc/mysql/my.cnf        #编辑配置文件
  [mysqld]            #在[mysqld]这一项下面加上下面三行,第一行是必须要加的,后面两行是为了方便管理、性能优化的,可有可无
  datadir         = /app/mysqldb       #指明数据库存放路径
  innodb_file_per_table  =  on               #用的是innodb引擎,并且使每个表单独一个文件,方便以后复制单表时方便
  skip_name_resolve   =  on                 #为了加速访问速度,忽略反向解析
  4、创建系统数据库;
 
   #数据库文件已经被准备好的,放置在/usr/local/mysql/scripts/mysql_install_db里
  [root@localhost /usr/local/mysql]# scripts/mysql_install_db  --user=mysql --datadir=/app/mysqldb
     #执行上条命令时,只能在/usr/local/mysql下执行,而不能进入到scripts下执行,会报错的
  [root@localhost /usr/local/mysql]# ls /app/mysqldb/           # 验证一下数据库是否生成
  aria_log.00000001  ib_logfile0                multi-master.info  mysql-bin.000003
  aria_log_control   ib_logfile1                mysql              mysql-bin.000004
  ib_buffer_pool     ibtmp1                     mysql-bin.000001   mysql-bin.index
  ibdata1            localhost.localdomain.pid  mysql-bin.000002   performance_schema
  [root@localhost /usr/local/mysql]#
  5、尝试启动mysql服务;
 
  [root@localhost /usr/local/mysql]# cp  support-files/mysql.server  /etc/init.d/mysqld  # 将服务脚本放在特定的目录下
  [root@localhost /usr/local/mysql]# chkconfig --list mysqld     # 查看一下mysqld服务是否生成,没生成的话就用下面的命令加上
  [root@localhost /usr/local/mysql]# chkconfig --add mysqld     
  [root@localhost /usr/local/mysql]# service mysqld start        # 我的这个报错是因为,我为了做实验演示,特意将原有的mysql用户删除重建,导致/var/log/mariadb目录没有了属主属组
  Restarting mysqld (via systemctl):  Job for mysqld.service failed because the control process exited with error code. See "systemctl status mysqld.service" and "journalctl -xe" for details.
                                                             [FAILED]
  [root@localhost /usr/local]# chown -R mysql:mysql /var/log/mariadb/   #将/var/log/mariadb/及其子文件的属主属组都换成mysql
  6、创建日志文件;
 
  我的原本/var/log/mariadb/目录文件已经存在(才会出现第5中的问题)所以不用创建,没有这个日志文件的话,在第5步启动服务时会报错说没有找到日志文件/var/log/mariadb,我们只需要创建出来就好了;
 
  [root@localhost /usr/local/mysql]# mkdir /var/log/mariadb/         #先创建出日志文件目录
  [root@localhost /usr/local/mysql]# chown mysql /var/log/mariadb/  #这一步是原先没有/var/log/mariadb/这个文件,所以创建后需要将其所属人换成mysql,这样以后mysql就有权限在其下创建或删除子文件
  [root@localhost /usr/local/mysql]# service mysqld start               #再重启服务
  Starting mysqld (via systemctl):               &nbsp%

dawei

【声明】:郑州站长网内容转载自互联网,其相关言论仅代表作者个人观点绝非权威,不代表本站立场。如您发现内容存在版权问题,请提交相关链接至邮箱:bqsm@foxmail.com,我们将及时予以处理。