一、centos6.5安装MariaDB
1、MariaDB版本:MariaDB 5.5.36
2、安装过程
在/etc/yum.repos.d/目录创建MariaDB.repo文件,内容如下:
[mariadb]
name = MariaDB
baseurl = http://yum.mariadb.org/5.5/centos6-amd64
gpgkey=https://yum.mariadb.org/RPM-GPG-KEY-MariaDB
gpgcheck=1
#yum install MariaDB-server MariaDB-client -y
#
二、centos7.2安装MariaDB
#yum install mariadb mariadb-server -y
启动服务
#systemctl start mariadb
#systemctl enable mariadb
配置Mariadb数据库的字符设置
在/etc/my.cnf中的mysqld标签下,新增字符设置:
init_connect='SET collation_connection = utf8_unicode_ci'
init_connect='SET NAMES utf8'
character-set-server=utf8
collation-server=utf8_unicode_ci
skip-character-set-client-handshake
在/etc/my.cnf.d/client.cnf中的client标签下,新增字符设置:
default-character-set=utf8
设置完成后,重新启动mariadb-server, 将设置生效
查看配置是否生效:进入数据库
#show variables like "%character%";
#show variables like "%collation%";
修改数据库密码(密码设置为zx123456)
#mysql_secure_installation
查看当前登录用户
select user();
Mariadb的用户存放在mysql库里面
show databases;
查看表user
select host,user,password from mysql.user;
给用户设置口令
(1)添加密码可以在user表中看到(update)
uptate user set password='Zx123456' where user='user01' and host='localhost';
(2)添加密码可以在user表中看不到(update)
uptate user set password=password('zx123456') where user='user01' and host='localhost';
(3)修改当前用户的密码(set)
(4)修改指定用户密码
(5)如果root用户原来有密码,输入原来密码后,修改生效
创建新用户
(1)创建用户(用户:user02)
(2)创建指定只能本地登录的用户(用户:user03)
#MariaDB [(none)]> create user user03@localhost
(3)创建用户并对其进行授权
添加一个用户名为user04对mysql数据库下的user表有select、update权限,密码为(zx123456)
grant select.update on mysql.user to user04 identified by 'zx123456';
添加一个用户名为user05对user数据库下的user表有所有权限,密码为zx123456
grant all on mysql.user to user05 identified by 'zx123456';
删除用户
(1)删除默认创建的用户
drop mysql.user user06
(2)删除只能本地登录的用户
drop user user03@'localhost';
回收用户权限
(1)收回用户的select权限
客户端登录MariaDB
#mysql -u xxx -p -h 192.168.100.10
忘记密码进入数据库
(1)停止数据库
#systemctl stop mariadb
(2)配置文件添加一行(单用户模式)
#vim /etc/my.cnf
[mysqld]
skip-grant-tables
(3)重启数据库生效
#systemctl restart mariadb
(4)进入数据库修改root密码
#mysql
select user();
use mysql;
update user set password=password('xxxxxx') where user='root' and host='localhost';
修改完后记得把之前添加的一行配置文件删除
刷新权限表, 让各种设置立即生效
#MariaDB [(none)]> flush privileges;
命令:
在mysql、mariadb、oracle、sql语言都要以“;”或者“\G”结束
system 后面可以使用shell命令
#MariaDB [mysql]> system ls /root
source 后面可以使用shell命令
vim /root/aa.sql
use mysql;
show tables;
MariaDB [mysql]> source /root/aa.sql
查看MariaDB系统变量
show variables like 'innodb%';
查询当前登录用户
select user();
查看拥有哪些库
命令查看:show databases;
文件查看:直接查看/var/lib/mysql下文件
登录到一个库
use mysql;
select database();
建立一个新的数据库(whuang)
create database whuang;
show databases;
同样在/var/lib/mysql/下会多出一个文件
status 查看mariadb属性
查看数据库的属性
show create database whuang;
更改库的编码
alter database whuang charset=utf8;
删除数据库
show databases;
drop database whuang;
查看库中的表(比如查看mysql库中的表)
use mysql;
show tables;
创建一个表
use whuang;
create table t1 (id int, name varchar(10), mail varchar(30));
查看创建表的结构
desc t1;
查看创建表的属性
show create table t1;
给表里面添加记录
1、列和值要一 一对应,字符串要用单引号括起来
insert into t1 (id, name, mail) values (1, 'huangweiping', 'whuang@zshield.net');
2、如果向表中所有列插入数据,可以不写列名
insert into t1 values (2,'tchen','tchen@zshield.net')
3、向指定列插入数据
insert into t1 (id,mail) values (3,'xtian@zshield.net');
4、一次性插入多条数据
insert into t1 values (4,'cailei','cailei@zshield.net'),(5,'lili','lili@zshield.net');
查询表中的数据
1、查看所有数据
select * from t1;
2、指定的列
select id,mail from t1;
3、使用where过滤查看
查看name='tchen'
select * from t1 where name='tchen';
查看列为“id、name”“name = tchen”
select id,name from t1 where name='tchen';
4、使用“and、or”查询
(1)查看“id = 1”“name = huangweipi”
select * from t1 where id=1 and name='huangweipi';
select * from t1 where id=2 or name='tchen';
(2)查看“ id > 4” 或者 “ id < 2 ”的
select * from t1 where id>4 or id<2;
5、使用“in”查询
查看 “id”为“ 1、2、3”的
select * from t1 where id in (1,2,3) ;
相当于
select * from t1 where id=1 or id=2 or id=3;
6、使用“between…and…”查询
查看 “id” 为 “2、3、4”的
select * from t1 where id between 2 and 4;
相当于
select * from t1 where id>=2 and id<=4;
备注:在实际生产中使用“and、or”好,因为“between…and…”和“in”会到搜索引擎里面把“between…and…”转换为“and”或者“or”
7、按字符查找 like
_ :相当于shell的“ ?” ,正则的“ . ”
(1)查看“name”以“huang”开头的
select * from t1 where name like 'huang%';
(2)查看“name”以“huang”开头后面还有5个字符的
select * from t1 where name like 'huang_____';
8、使用正则表达式(加入regexp)
_:任意一个字符
^:以xxx开头
$:以xxx结尾
*:前面字符连续出现"0---多"次
+:前面字符连续出现"1---多"次
?:前面连续出现"0---1"次
{3}:前面字符连续出现三次
{3,}:前面字符连续出现"3---多"次
{3,5}:前面字符连续出现"3---5"次
(1)查看name为4个字符的
select * from tt where name regexp '^....$';
(2)查看name已"z"开头并且"z"连续出现一次以上
select * from tt where name regexp '^z+';
(3)查看name以"n"结尾的
select * from tt where name regexp 'n$';
复制表
1、只复制表结构
2、复制数据
3、复制整个表结构和数据
删除记录
一定要加上where约束,没有where就删除整个表;
删除整个表的数据
(1)delete
(2)truncate
修改数据
修改表结构
一、增加列
(1)默认添加是添加到最后
(2)增加到第一列
(3)增加列到id字段后;
二、删除列
删除表
更改表的编码
概念
1、列是存储在表中的一块数据;行是一组能够描述某个事物的列的集合;列和行构成了表。
2、字符(varchar)、日期(date)