加入收藏 | 设为首页 | 会员中心 | 我要投稿 大连站长网 (https://www.0411zz.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > MySql教程 > 正文

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

发布时间:2022-08-23 22:16:40 所属栏目:MySql教程 来源:互联网
导读:Centos 7中设置二进制数据库mariadb最新版本: 一:实验背景; 在马哥教育学习到MYSQL这章时,留作业练习的实验 二:实验准备; 1、先检查虚拟机上是否存在mariadb: rpm -qa mariadb*,若有的话,则卸载; 2、通过yum info mariadb查找到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):                           [  OK  ]
  [root@localhost /usr/local/mysql]#
  7、添加PATH变量;
 
    #因为mysql被放在/usr/local/mysql/bin下,所以可以将其路径写到配置文件中,使用时就不用写绝对路径了
  [root@localhost /usr/local/mysql]# vim /etc/profile.d/mysql.sh         
  PATH=/usr/local/mysql/bin:$PATH
 
  [root@localhost /usr/local/mysql]#  . /etc/profile.d/mysql.sh      #使其生效
  [root@localhost /usr/local/mysql]# echo $PATH
  /usr/local/mysql/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin
  [root@localhost /usr/local/mysql]#

  四:实验测试;
 
  [root@localhost /usr/local/mysql]# mysql -uroot -p     #因为我们设置过口令了,所以就要加上密码登录,可以“-p密码”,也可以直接 -p 后回车再输入密码,后者比较安全
  Enter password:                                        #输入密码     
  Welcome to the MariaDB monitor.  Commands end with ; or g.
  Your MariaDB connection id is 24
  Server version: 10.2.9-MariaDB-log MariaDB Server
  Copyright (c) 2000, 2017, Oracle, MariaDB Corporation Ab and others.
  Type 'help;' or 'h' for help. Type 'c' to clear the current input statement.
  MariaDB [(none)]> show databases;                      #显示数据库文件信息,而且从“[(none)]”看出现在我们并没有在哪个特定的数据库中
  +--------------------+
  | Database           |
  +--------------------+
  | #mysql50#.mozilla  |
  | information_schema |
  | mysql              |
  | performance_schema |
  +--------------------+
  4 rows in set (0.01 sec)

  五:实验总结;
 
  这个实验其实步骤很简单,主要是将代码敲对就OK了,在试验中,有的同学在配置文件my.conf中的那三行代码打错了,导致了一些问题出现,根据步骤一步一不做,然后出错的时候就按照步骤去排查。

(编辑:大连站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!