ビルド環境:
sudo apt install mariadb-server
初期パスワードを設定:
UPDATE mysql.user SET password = PASSWORD(‘password’) WHERE USER =‘root’;
シェルでエラーが報告されます:
ERROR 1054 (42S22): Unknown column '‘root’' in 'where clause'
一重引用符は機能しないため、シェルで二重引用符に置き換えてください。
Query OK, 0 rows affected (0.00 sec)
Rows matched: 1 Changed: 0 Warnings: 0
パスワードの変更方法:
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 [(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。确定用户能否创建和删除触发器。
データベースを作成するには2つの方法があります。
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..); --向表中插入所有列
データを挿入するときは、単一引用符に注意してください。これは非常に問題があります。私は常にエラーを報告しました。「フィールドリスト」の不明な列 ''。半日数えた後、データの数と列の数は常に同じですが、挿入できません。中国語では一重引用符になっていて、よく見ないとわかりません。
データを更新します。
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"@"%";
データベースログリファレンス