linux安装MariaDB

 

目录

MariaDB特性

MariaDB的安装

yum安装

二进制格式安装

修改密码

忘记登录密码:

Mysql程序

客户端程序:

服务端程序:

客户端选项

服务端配置文件


MariaDB是由Mysql的创始人麦克尔·维德纽斯主导开发,以他女儿的名字玛丽亚(Maria)命名。在centos6及之前的版本中,系统自带的是mysql,centos7中,改为mariadb。本文的环境是centos7。

MariaDB算是Mysql的分支,甲骨文公司(Oracle)收购了MySQL后,有将MySQL闭源的风险,因此开源社区采用分支的方式来避开这个风险,由开源社区维护。目的是完全兼容MySQL,包括API和命令行,成为MySQL的代替品。

MariaDB特性

1、采用插件式存储引擎,也称表类型,mysql从5.5.5开始将innoDb作为默认存储引擎。

2、单进程,多线程

3、开源

MariaDB的安装

yum安装

yum info mariadb-server   #查看当前系统下自带的mariadb版本信息

yum install mariadb-server

如果要安装最新版本的mariadb,可以在mariadb官网中找对应版本的repo文件,添加到本机即可

repo文件链接:https://downloads.mariadb.org/mariadb/repositories/#mirror=shanghai-university

linux安装MariaDB_第1张图片

 cd /etc/yum.repos.d/

vim mariadb.repo

[mariadb]
name = MariaDB
baseurl = http://yum.mariadb.org/10.3/centos7-amd64
gpgkey=https://yum.mariadb.org/RPM-GPG-KEY-MariaDB
gpgcheck=1

保存退出
yum clean all

yum -y install mariadb-server

mysql -uroot -p

二进制格式安装

即已经编译完成,展开至特定路径,简单配置后即可

1、检查环境

rpm -qa |grep mariadb

如果有内容输出,用yum remove 卸载即可。

2、到官网下载对应版本的二进制包,上传到系统中

下载地址:https://downloads.mariadb.org

或者直接右击上图中的包名,复制链接地址,用wget下载即可

wget https://downloads.mariadb.org/interstitial/mariadb-10.3.12/bintar-linux-x86_64/mariadb-10.3.12-linux-x86_64.tar.gz

3、创建用户和组

useradd -r -s /sbin/nologin mysql  #,-s 指定shell  -r表示在创建该用户的同时,创建同名的组,并加入其中。

4、创建一个安装路径,并将包解压到二进制包的默认安装路径下(上图中点击instructions查看,一般是/usr/local/

tar -xzvf mariadb-10.2.20-linux-x86_64.tar.gz -C /usr/local/

5、给解压的包创建一个软连接,命名为mysql,或者直接将加压好的文件重命名为mysql

cd /usr/local/

ln -s mariadb-10.2.20-linux-x86_64/ mysql

(mv  mariadb-10.2.20-linux-x86_64/   mysql)

chown -R mysql:mysql mysql/

6、创建存储路径

mkdir /data

chown mysql:mysql /data

chmod 770 /data       #指定其他用户不能访问


扩展:如果考虑到以后数据库的存储空间不足的问题,我们可以在第6步之前,新加一块硬盘,将其作为LVM,方便以后用LVM扩容

pvcreate /dev/sdb     #将sdb做成物理卷

vgcreate vg0 /dev/sdb       #将其做为卷组,命名为vg0

lvcreate -n lv_mysql -l 100%FREE vg0   #-l指定逻辑卷lv的大小,100%FREE 意味着将整个逻辑卷的空间都给lv_mysql

lvs   #查看

mkfs.xfs /dev/vg0/lv_mysql    #格式化

blkid     #查看

mkdir /data

vim /etc/fstab

/dev/vg0/lv_mysql       /data         xfs     defaults        0 0

mount -a

df #查看


7、修改配置文件

cp /etc/my.cnf /etc/my.cnf.bak   #将之前的配置文件做备份

cd /usr/local/mysql/support-files/

cp my-huge.cnf /etc/my.cnf  #support-files下有很多模板的配置文件,可根据自己的生产环境来选择

注意:有些版本的包中可能没有模板配置文件,可以直接用原有的/etc/my.cnf,或者在网上下载一份即可。

vim /etc/my.cnf

[client]
port            = 3306
socket          = /usr/local/mysql/mysql.sock

[mysqld]
port            = 3306
socket          = /usr/local/mysql/mysql.sock
basedir         = /usr/local/mysql
datadir         = /data

[mysqld_safe]
log-error=/var/log/mariadb/mariadb.log     
#定义mariadb的错误日志文件路径,便于将来排错。
pid-file=/var/run/mariadb/mariadb.pid       #定义mariadb的pid文件文件路径

注意:这里mysql.sock文件默认的路径是/tmp/mysql.sock,msql用户对其也是有写权限的,可不做修改,根据自己需要。但是/tmp这个目录是系统公用的临时存储点,系统会自动清理,可以给他一个新的路径,但一定要记得修改这个新路径的所有者和所属组为mysql,否则在mysqld服务启动时加载mysql.sock时会发生错误。

这里的新路径/usr/local/mysql我们在第五步已经给过权限了。

关于mysql.sock文件以及在连接数据库时出现无法连接到mysql.sock文件的问题,请参考另一篇文章:https://blog.csdn.net/keil_wang/article/details/88641735

8、创建日志文件夹

mkdir /var/log/mariadb

chown -R mysql:mysql //var/log/mariadb

9、拷贝运行脚本的范例

cp mysql.server /etc/init.d/mysqld  #mysql.server也在support-files下

10、用脚本生成mysql的默认数据库(初始化)

cd /usr/local/mysql

scripts/mysql_install_db --basedir=/usr/local/mysql --datadir=/data --user=mysql

ll /data   #可以看到已经生成了

linux安装MariaDB_第2张图片

11、启动mysqld

/etc/init.d/mysqld  start 

12、进入数据库

mysql -uroot -p   #进入数据库,此时密码为空直接回车即可

linux安装MariaDB_第3张图片

 


扩展:为了方便,将/usr/local/mysql/bin放入到PATH变量中  

echo PATH=/usr/local/mysql/bin:$PATH > /etc/profile.d/mysql.sh

chmod u+x /etc/profile.d/mysql.sh   #给用户写的权限

source /etc/profile.d/mysql.sh     #使其生效

这样我们就不用在每次进入数据库是都得进到安装目录的bin下,可以在任何路径下直接用 mysql -uroot -p命令来直接进入数据库。


修改密码

三种方法:

1、用set password命令

mysql> set password for root@localhost = password('123');  

2、用mysqladmin

mysqladmin -uroot -p123456 password 123 

3、用updata直接编辑user表

mysql> use mysql; 

mysql> update user set authentication_string = password('123'), password_expired = 'N', password_last_changed = now() where user = 'root'; 

mysql> flush privileges;  

 

注意:mysql中的账号由两部分组成

用户名@主机名   如:root@localhost

host限制此用户可以通过哪些主机来远程登陆mysql服务器

存放在mysql库的user表中

select user,host,password from user;

忘记登录密码:

vim /etc/my.cnf

[mysqld]

skip-grant-tables    #跳过密码验证

保存退出后,重启mysqld,再次登录直接回车进入数据库后修改新密码。改完后记得在配置文件中注释skip-grant-tables 

Mysql程序

客户端程序:

mysql:交互式的CLI命令工具

mysqldump:备份工具,原理:基于mysql协议向mysqld发起查询请求,并将结果转换成insert等写操作语句保存到文本文件中。

mysqladmin:数据库导入工具

服务端程序:

mysqld_safe

mysqld

mysqld_multi :多实例,如:mysql_multi --example

多实例:也就是一个软件在机器上跑多份,一份是一个实例,win中打开多个word文档就类似于多实例

客户端选项

-A 禁止补全

-u,--user= 用户名

-p,--password= 密码

-h,--host= 服务器主机

-P,--port= 服务器端口

-S,--socket= 指定连接socket文件路径

-D,--database= 指定默认数据库

-C,--compress= 启用压缩

-e,“SQL语句”  执行SQL语句,不用进入mysql即可执行

-V,--version 显示版本

-v,--verbose 显示详细信息

服务端配置文件

配置文件,如:/etc/my.cnf

[mysqld]

[mysqld_safe]

[mysqld_multi]

[mysql]

[musqldump]

[sever]

[client]

都是键值对的格式,

注意:mysql的配置文件中,

-和_意义相同

  1. OFF,FALSE意义相同
  2. ON,TRUE意义相同

 

如有错误,敬请指正~~

你可能感兴趣的:(mysql修改密码,二进制格式安装mysql)