注意:此方法只适用于新的机器或没有重要数据库表(可随意删除)的机器安装,如需升级版本参考下方链接!!!

https://www.jianshu.com/p/955ff6065935

一、安装操作

1.查看是否已经安装mysql或mariadb

  1. rpm -qa | grep -i mysql
  2. rpm -qa | grep -i mariadb

如果有信息打印则代表已安装(MariaDB是MySql的一个分支,具体区别和关系自行查找文献)

2.卸载数据库

如果已安装的版本不是想要的版本,则卸载即可(*内容自行替换)

rpm -e --nodeps MariaDB-*

3.编辑数据库源配置

vi /etc/yum.repos.d/MariaDB.repo

按下i进入编辑模式,写入对应版本的配置信息,如10.2版本,对应版本参考官网说明

https://mariadb.org/download/?t=repo-config&d=CentOS+7+%28x86_64%29&v=10.2&r_m=aliyun

  1. # MariaDB 10.2 CentOS repository list - created 2022-05-16 01:54 UTC
  2. # https://mariadb.org/download/
  3. [mariadb]
  4. name = MariaDB
  5. baseurl = https://mirrors.aliyun.com/mariadb/yum/10.2/centos7-amd64
  6. gpgkey=https://mirrors.aliyun.com/mariadb/yum/RPM-GPG-KEY-MariaDB
  7. gpgcheck=1

然后按下Esc,输入:wq回车保存并退出

更改配置之后需要执行以下命令

sudo yum clean all

4.导入密钥

rpm --import https://yum.mariadb.org/RPM-GPG-KEY-MariaDB

5.开始安装mariadb

sudo yum install MariaDB-server MariaDB-client

6.启动服务

systemctl start mariadb

7.设置开机自启动服务

systemctl enable mariadb

8查看服务运行状态

systemctl status mariadb

这样就代表正常运行

二、配置操作

1.查看数据库版本

mysql --version

2.配置数据库

mysql_secure_installation

  1. Enter current password for root (enter for none): # 输入数据库超级管理员root的密码(注意不是系统root的密码),第一次进入还没有设置密码则直接回车
  2. Set root password? [Y/n] # 设置密码,y
  3. New password: # 新密码
  4. Re-enter new password: # 再次输入密码
  5. Remove anonymous users? [Y/n] # 移除匿名用户, y
  6. Disallow root login remotely? [Y/n] # 拒绝root远程登录,n,不管y/n,都会拒绝root远程登录
  7. Remove test database and access to it? [Y/n] # 删除test数据库,y:删除。n:不删除,数据库中会有一个test数据库,一般不需要
  8. Reload privilege tables now? [Y/n] # 重新加载权限表,y。或者重启服务也可以

3.连接数据库

mysql -u root -p

4.查看内置账号

select user, host from mysql.user;

5.授予外网登陆权限

grant all privileges on *.* to root@'%' identified by '自己设置密码';

%表示针对所有IP,password表示将用这个密码登录root用户,如果想只让某个IP段的主机连接,可以修改为:

GRANT ALL PRIVILEGES ON *.* TO 'root'@'192.168.71.%' IDENTIFIED BY 'my-new-password' WITH GRANT OPTION;

6.刷新权限

FLUSH PRIVILEGES;

再次查询用户之后,就会看到%那一项配置了

select user, host from mysql.user;

7.关闭连接

exit

8.端口设置

查看3306端口是否开启

firewall-cmd --query-port=3306/tcp

开启3306防火墙端口

firewall-cmd --zone=public --add-port=3306/tcp --permanent

开启后要重启防火墙

firewall-cmd --reload

这时候去尝试远程连接,如果连不了尝试关闭防火墙

停止firewall

systemctl stop firewalld.service

禁止firewall开机启动(视情况而定要不要设置这个)

systemctl disable firewalld.service

三、配置数据库编码格式

排序规则说明:

utf8_unicode_ci: 可以支持德语、西班牙语等,检索速度慢,但是很准确

utf8_general_ci:常规都支持,中文也是可以的,,检索速度快但是不是很准确

综上,一般使用utf8_general_ci足够了,具体区别自行查找文献

1.配置server

vi /etc/my.cnf.d/server.cnf

  1. # 在[mysqld]下添加
  2. init_connect='SET collation_connection = utf8_unicode_ci'
  3. init_connect='SET NAMES utf8'
  4. character-set-server=utf8
  5. collation-server=utf8_unicode_ci
  6. skip-character-set-client-handshake

2.配置client

vi /etc/my.cnf.d/client.cnf

  1. # 在 [client] 标签下添加
  2. default-character-set=utf8

如果没有该文件,请忽略这一步,直接输入:q退出编辑即可

3.配置mysql-clients

vi /etc/my.cnf.d/mysql-clients.cnf

  1. # 在 [mysql] 标签下添加
  2. default-character-set=utf8

4.重启数据库

systemctl restart mariadb

四、配置大小写敏感

1.配置忽略表名大小写

vi /etc/my.cnf.d/server.cnf

  1. #在[mysqld]下添加
  2. lower_case_table_names=1 #默认是等于0的,即大小写敏感。改成1就OK了。如果之前已经建了数据库要把之前建立的数据库删除,重建才生效。

2.重启数据库

systemctl restart mariadb

五、更改数据库默认存储路径

为什么要改呢???因为默认存储路径中内存使用率过高,防止内存溢出导致数据库运行异常

1.停止服务

systemctl stop mariadb

2.迁移数据库

mv /var/lib/mysql /data #默认存储在/var/lib/mysql中,现把他迁移到data文件夹中

3.更改配置文件

  1. vim /etc/my.cnf
  2. # 在[client-server]下追加以下内容
  3. socket=/data/mysql/mysql.sock
  4. vi /etc/my.cnf.d/server.cnf
  5. # 在[mysqlld]下追加以下内容
  6. datadir=/data/mysql

4.重启服务

systemctl restart mariadb

如果你路径改的是home下,这时候可能会报错 Job for mariadb.service failed because the control process exited with error code. See "systemctl status mariadb.service" and "journalctl -xe" for details.

如果没报错,则忽略该步骤

  1. 运行 vi /usr/lib/systemd/system/mariadb.service 找到 ProtectHome=true 改为 ProtectHome=false
  2. 再运行 systemctl daemon-reload 重新加载服务
  3. 再运行 systemctl restart mariadb 重启服务

5.查看是否更改成功

  1. mysql -uroot -p #连接mysql
  2. show global variables like "%datadir%"; #查看存储路径

参考:

https://www.cnblogs.com/yhongji/p/9783065.html

https://www.cnblogs.com/macoffee/p/13743640.html

https://www.jianshu.com/p/955ff6065935

https://segmentfault.com/a/1190000015324189

CentOS安装mysql、MariaDB以及更改数据库存储路径的更多相关文章

  1. mysql数据库存储路径更改 数据文件位置

    使用了VPS一段时间之后发现磁盘空间快满了.本人的VPS在购买的时候买了500gb的磁盘,提供商赠送了20GB的高性能系统磁盘.这样系统就有两个磁盘空间了.在初次安装mysql 的时候将数据库目录安装 ...

  2. 记录CentOS 7.4 上安装MySQL&MariaDB&Redis&Mongodb

    记录CentOS 7.4 上安装MySQL&MariaDB&Redis&Mongodb 前段时间我个人Google服务器意外不能用,并且我犯了一件很低级的错误,直接在gcp讲服 ...

  3. mysql 数据库存储路径更改

    使用了VPS一段时间之后发现磁盘空间快满了.本人的VPS在购买的时候买了500gb的磁盘,提供商赠送了20GB的高性能系统磁盘.这样系统就有两个磁盘空间了.在初次安装mysql 的时候将数据库目录安装 ...

  4. centOS安装Mysql指南

    centOS安装Mysql指南 说明:使用操作系统centOS6.4 32位系统:mysql:mysql-5.7.10-linux-glibc2.5-i686.tar.gz; 一.准备 下载mysql ...

  5. mysql(mariadb)如何更改root密码

    mysql(或者mariadb,她是mysql的一个分支,完全开源,新版本的linux系统默认安装的是mariadb)如何更改root密码呢?我们主要介绍命令mysqladmin来实现. mysql( ...

  6. centos安装 mysql

    centos安装 mysql 1. 下载mysqlmysql被oracle收购后现在退出了企业版和社区版本,社区版本是开源的,企业版是收费的.社区版可以下载源码也可以下载二进制文件包.源码安装比较麻烦 ...

  7. windows 系统如何安装 mysql 8.0.15 数据库?

    windows 系统如何安装 mysql 8.0.15 数据库? 1. 下载安装包 下载地址:https://cdn.mysql.com//Downloads/MySQL-8.0/mysql-8.0. ...

  8. ubuntu 安装 mysql mariadb

    本教程面向Ubuntu服务器,适用于Ubuntu的任何LTS版本,包括Ubuntu 14.04,Ubuntu 16.04,Ubuntu 18.04,甚至非LTS版本(如Ubuntu 17.10和其他基 ...

  9. Sqlserver数据库存储路径的修改

    Sqlserver数据库存储路径的修改 Sqlserver数据库存储路径问题:本系统sqlserver路径默认是存储在C盘目录下的,由于数据会慢慢变大和避免重装系统数据丢失等问题,最好手动将路径设置在 ...

  10. 在centos使用rpm包的方式安装mysql,以及更改root密码

    在centos使用rpm包的方式安装mysql,对于centos官方实际推荐使用yum进行安装,下载安装的方式主要用于内网服务器不能连接外网yum源的情况. 下载包 首先根据centos版本在mysq ...

随机推荐

  1. IOT黑客入门篇之初探Badusb

    什么是Badusb?   BadUSB是一种使用带有恶意软件编程的USB设备的计算机安全攻击.例如,USB 闪存驱动器可以包含可编程的Intel 8051微控制器,该微控制器可以重新编程,将USB闪存 ...

  2. 23、有一个字符串,包含n个字符,编写一函数,将此字符串中从第m个字符开始的全部字符串复制成另一个字符串

    /* 有一个字符串,包含n个字符,编写一函数,将此字符串中从第m个字符开始的全部字符串复制成另一个字符串 */ #include <stdio.h> #include <stdlib ...

  3. CentOS 7.x字符界面安装图形界面方法

    1. 配置好yum源,可以使用光盘镜像源,也可以使用网络源. 阿里源下载示例: wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.ali ...

  4. Ansible执⾏速度优化

    个人名片: 因为云计算成为了监控工程师‍ 个人博客:念舒_C.ying CSDN主页️:念舒_C.ying 优化⼀: 开启SSH长连接 Ansible模式是使⽤SSH和远程主机进⾏通信, 所以Ansi ...

  5. <三>使用类模板实现STL Vector

    使用类模板实现STL Vector,点击查看代码 #include <iostream> using namespace std; template<typename T> c ...

  6. C#调用WPS转换文档到PDF的的实现代码。

    1.WPS安装,最好用这个版本别的版本不清楚,安装Pro Plus2016版本. https://ep.wps.cn/product/wps-office-download.html 2.添加相关的引 ...

  7. 小米路由器局域网设备ping不通

    问题 手机和电脑在同一个局域网内,都连接上小米路由器,我发现电脑部署的服务局域网设备都访问不到,甚至ping不到,排除了防火墙问题,最终发现是路由器一个设置导致的. 解决 将原来的混合加密,更换为强加 ...

  8. c++详细学习——继承

    通常讲父类(parrent)-子类(child).基类(base)-派生类(derived)和超类(super)-子类(sub) 1 最基础的写法 以下例子为最基本的写法,默认构造 1 enum Ge ...

  9. Isaac SDK & Sim 环境

    Isaac 是 NVIDIA 开放的机器人平台.其 Isaac SDK 包括以下内容: Isaac Apps: 各种机器人应用示例,突出 Engine 特性或专注 GEM 功能 Isaac Engin ...

  10. 记录一次缓存引起的线上BUG

    背景 有一个需求大概是这样的,为了提高推荐系统的性能,需要本来从A服务获取的帖子信息,改为从Redis里面重新读取 Redis里面没有存帖子的所有信息,只存储了推荐系统必要的字段 大概是这样的: 至于 ...