搭建环境:

sudo apt install mariadb-server

设置初始密码:

UPDATE mysql.user SET password = PASSWORD(‘password’) WHERE USER =‘root’;

在shell中会报错:

ERROR 1054 (42S22): Unknown column '‘root’' in 'where clause'

因为单引号不行,在shell中替换成双引号即可:

Query OK, 0 rows affected (0.00 sec)
Rows matched: 1  Changed: 0  Warnings: 0

修改密码登录方式:

mariaDB导入sql mariadb导入数据_表名

MariaDB [(none)]> update mysql.user set plugin="mysql_native_password" where User="root";
Query OK, 1 row affected (0.00 sec)
Rows matched: 1  Changed: 1  Warnings: 0

mariaDB导入sql mariadb导入数据_表名_02

更新设置:

MariaDB [(none)]> FLUSH PRIVILEGES;

再次登陆时应为:

mysql -u root -p

建立只读用户:

GRANT SELECT ON *.* TO "username"@"%" IDENTIFIED BY "password";

查看用户所有信息:

MariaDB [(none)]> select *from mysql.user

权限信息:

Select_priv。确定用户是否可以通过SELECT命令选择数据。
Insert_priv。确定用户是否可以通过INSERT命令插入数据。
Update_priv。确定用户是否可以通过UPDATE命令修改现有数据。
Delete_priv。确定用户是否可以通过DELETE命令删除现有数据。
Create_priv。确定用户是否可以创建新的数据库和表。
Drop_priv。确定用户是否可以删除现有数据库和表。
Reload_priv。确定用户是否可以执行刷新和重新加载MySQL所用各种内部缓存的特定命令,包括日志、权限、主机、查询和表。
Shutdown_priv。确定用户是否可以关闭MySQL服务器。在将此权限提供给root账户之外的任何用户时,都应当非常谨慎。
Process_priv。确定用户是否可以通过SHOW
PROCESSLIST命令查看其他用户的进程。
File_priv。确定用户是否可以执行SELECT INTO OUTFILE和LOAD DATA
INFILE命令。
Grant_priv。确定用户是否可以将已经授予给该用户自己的权限再授予其他用户。例如,如果用户可以插入、选择和删除foo数据库中的信息,并且授予了GRANT权限,则该用户就可以将其任何或全部权限授予系统中的任何其他用户。
References_priv。目前只是某些未来功能的占位符;现在没有作用。
Index_priv。确定用户是否可以创建和删除表索引。
Alter_priv。确定用户是否可以重命名和修改表结构。
Show_db_priv。确定用户是否可以查看服务器上所有数据库的名字,包括用户拥有足够访问权限的数据库。可以考虑对所有用户禁用这个权限,除非有特别不可抗拒的原因。
Super_priv。确定用户是否可以执行某些强大的管理功能,例如通过KILL命令删除用户进程,使用SET
GLOBAL修改全局MySQL变量,执行关于复制和日志的各种命令。
Create_tmp_table_priv。确定用户是否可以创建临时表。
Lock_tables_priv。确定用户是否可以使用LOCK
TABLES命令阻止对表的访问/修改。
Execute_priv。确定用户是否可以执行存储过程。
Repl_slave_priv。确定用户是否可以读取用于维护复制数据库环境的二进制日志文件。此用户位于主系统中,有利于主机和客户机之间的通信。
Repl_client_priv。确定用户是否可以确定复制从服务器和主服务器的位置。
Create_view_priv。确定用户是否可以创建视图。
Show_view_priv。确定用户是否可以查看视图或了解视图如何执行。
Create_routine_priv。确定用户是否可以更改或放弃存储过程和函数。
Alter_routine_priv。确定用户是否可以修改或删除存储函数及函数。
Create_user_priv。确定用户是否可以执行CREATE
USER命令,这个命令用于创建新的MySQL账户。
Event_priv。确定用户能否创建、修改和删除事件。
Trigger_priv。确定用户能否创建和删除触发器。

创建数据库有两种方式:

create database 数据库名;

create database 数据库名 character set 字符集;

建立好数据库之后,应该选择数据库,在该数据库下进行操作

show databases;  //显示出所有的数据库

select database(); //查看当前选择的数据库

use 数据库名   //选择要操作的数据库 ,会提示Database changed

创立数据表:

create table 表名(
   字段名 类型(长度) 约束,
   字段名 类型(长度) 约束
);

增删改:

增加列:

alter table tableName add columnName varchar(30)

修改列类型:

alter table tableName alter column columnName varchar(4000) 

修改列名称:

EXEC  sp_rename   'tableName.column1' , 'column2'  (把表名为tableName的column1列名修改为column2)  

删除列:

alter table tableName drop column columnName  

修改列长度:

alter table 表名 modify column 字段名 varchar(数量);

插入数据:

insert into 表名 (列名1,列名2,列名3..) values  (值1,值2,值3..); -- 向表中插入某些列

insert into 表名 values (值1,值2,值3..); --向表中插入所有列

插入数据时注意单引号。这点是非常坑的,一直报错,Unknown column '' in 'field list',数了半天数据个数和列个数都一直都是一样的,然而就是插不进去,原来是英文的单引号打成了中文的单引号,不仔细看还真是看不出来。

更新数据:

update 表名 set 字段名 = '***' where 字段名 = '**';

查看数据表结构和列出所有数据表名称:

desc 表名;
show tables;

查看数据表全部内容:

select *from 表名;

删除整个数据表、删除整个表的数据:

drop table xxxxxx;
truncate table xxxxxx;

查找部分数据和删除部分数据

select *from 表名 where 字段名 >= '' and 字段名 <= '';

delete from 表名 where 字段名 >= '' and 字段名 <= '';

将csv文件导入数据库:

load data infile "/home/name.csv" into table tablename character utf8 gbk fields terminated by "," lines terminated by '\r\n';

如果中文出现乱码的话是编码的问题,可以将命令里边的utf8改成gbk。

删除表内的数据:

delete from tablename;

撤销用户权限:

REVOKE  ALL ON *.* FROM "username"@"%";

数据库日志参考

数据库日志详解