学习笔记--MySQL

//安装mysql5.7解压版

1. 解压

2. 设置环境变量

PATH中加入mysql的bin路径

3. 修改my-default.ini

[mysqld]

 basedir = D:\MySQL\Server\mysql-5.6.20-win32
 datadir = D:\MySQL\Server\data
 port = 3306

4. 安装mysql服务

在bin下执行:
D:\MySQL\Server\mysql-5.6.20-win32\bin>mysqld -install
Service successfully installed.

4. 卸载mysql服务
D:\MySQL\Server\mysql-5.6.20-win32\bin>mysqld -remove

//MySQL管理

//启动及关闭MySQL

启动mysql服务

若在myql目录中没有data文件夹,则会启动失败,需要在bin中执行:

mysqld --initialize-insecure --user=mysql

会自动创建data文件夹,现在可以启动mysql服务:

net start mysql

登录mysql:

mysql -u root -p

默认密码为空

添加密码:

mysqladmin -u root password "new_password"

或通过mysql语句更改本用户密码

set password = password("new_password");

关闭mysql服务

mysqladmin -u root -p shutdown

net stop mysql

//用户设置

创建用户

CREATE USER ‘username‘@‘host‘ IDENTIFIED BY ‘password‘;

说明:username - 你将创建的用户名, host - 指定该用户在哪个主机上可以登陆,如果是本地用户可用localhost, 如果想让该用户可以从任意远程主机登陆,可以使用通配符%. password - 该用户的登陆密码,密码可以为空,如果为空则该用户可以不需要密码登陆服务器.

注意:%为任意远程主机,localhost和127.0.0.1权限不一样

例子: CREATE USER ‘dog‘@‘localhost‘ IDENTIFIED BY ‘123456‘;

CREATE USER ‘pig‘@‘192.168.1.101_‘ IDENDIFIED BY ‘123456‘;

CREATE USER ‘pig‘@‘%‘ IDENTIFIED BY ‘123456‘;

CREATE USER ‘pig‘@‘%‘ IDENTIFIED BY ‘‘;

CREATE USER ‘pig‘@‘%‘;

授权

GRANT privileges ON databasename.tablename TO ‘username‘@‘host‘

说明: privileges - 用户的操作权限,如SELECT , INSERT , UPDATE 等(详细列表见该文最后面).如果要授予所的权限则使用ALL.;databasename - 数据库名,tablename-表名,如果要授予该用户对所有数据库和表的相应操作权限则可用*表示, 如*.*.

注意:用以上命令授权的用户不能给其它用户授权,如果想让该用户可以授权,用以下命令:

GRANT privileges ON databasename.tablename TO ‘username‘@‘host‘ WITH GRANT OPTION;

设置与更改用户密码

SET PASSWORD FOR ‘username‘@‘host‘ = PASSWORD(‘newpassword‘);如果是当前登陆用户用SET PASSWORD = PASSWORD("newpassword");

例子: SET PASSWORD FOR ‘pig‘@‘%‘ = PASSWORD("123456");

撤销用户权限

REVOKE privilege ON databasename.tablename FROM ‘username‘@‘host‘;

注意: 假如你在给用户‘pig‘@‘%‘授权的时候是这样的(或类似的):GRANT SELECT ON test.user TO ‘pig‘@‘%‘, 则在使用REVOKE SELECT ON *.* FROM ‘pig‘@‘%‘;命令并不能撤销该用户对test数据库中user表的SELECT 操作.相反,如果授权使用的是GRANT SELECT ON *.* TO ‘pig‘@‘%‘;则REVOKE SELECT ON test.user FROM ‘pig‘@‘%‘;命令也不能撤销该用户对test数据库中user表的Select 权限.

删除用户:

DROP USER ‘username‘@‘host‘;

重新载入授权表:

FLUSH PRIVILEGES;

在 mysql 数据库中的 user 表添加新用户:

INSERT INTO user

(host, user, password,

select_priv, insert_priv, update_priv)

VALUES (‘localhost‘, ‘guest‘,

PASSWORD(‘guest123‘), ‘Y‘, ‘Y‘, ‘Y‘);

注意:在 MySQL5.7 中 user 表的 password 已换成了authentication_string

通过GRANT命令添加用户并添加权限:

mysql> GRANT SELECT,INSERT,UPDATE,DELETE,CREATE,DROP

-> ON TUTORIALS.*

-> TO ‘zara‘@‘localhost‘

-> IDENTIFIED BY ‘zara123‘;

示例:

mysql > create database example default character set utf8;

mysql > create user ‘server‘@‘%‘ identified by ‘example‘;

mysql > grant all on example.* to ‘server‘@‘%‘ identified by ‘example‘;

mysql > use example;

mysql > CREATE TABLE `User` (

`id` int(11) unsigned NOT NULL AUTO_INCREMENT,

`userName` varchar(50) NOT NULL DEFAULT ‘‘,

`userPassword` varchar(50) NOT NULL DEFAULT  ‘‘,

`userDesc` varchar(100) NOT NULL DEFAULT  ‘‘,

PRIMARY KEY (`id`)

) ENGINE=InnoDB DEFAULT CHARSET=utf8;

mysql > INSERT INTO `User` (`userName`, `userPassword`, `userDesc`) VALUES

(‘test_user‘, ‘test_password‘, ‘Test user for server example‘);

//管理MySQL的常用命令

mysqladmin -u root -p create <database>;            //创建数据库

mysqladmin -u root -p drop <database>;          //删除数据库

CREATE database example default character set utf8;                //创建数据库

USE <数据库名>;        //选择要操作的数据库,以后的MySQL命令都只针对该数据库

SHOW DATABASES;            //列出MySQL数据库管理系统所管理的数据库列表

SHOW TABLES;           //列出指定数据库中的所有表,需要先使用use 数据库

SHOW INDEX FROM <数据表>;               //显示数据表的详细索引信息,包括PRIMARY KEY(主键)

SHOW COLUMNS FROM <数据表>;        //显示数据表的详细列头信息

SHOW TABLE STATUS FROM <数据库> LIKE ‘需要匹配的字符串‘\G;          //该命令将输出Mysql数据库管理系统的性能及统计信息

CREATE TABLE table_name (column_name column_type);            //创建数据表

SHOW PROCESSLIST;       //显示数据库连接线程列表

SHOW CREATE TABLE table_name;        //显示表信息

SHOW VARIABLES LIKE ‘%character%‘;          //显示字符集编码信息

实例:

mysql> CREATE TABLE runoob_tbl(-> runoob_id INT NOT NULL AUTO_INCREMENT,-> runoob_title VARCHAR(100) NOT NULL,-> runoob_author VARCHAR(40) NOT NULL,-> submission_date DATE,-> PRIMARY KEY ( runoob_id )-> ) ENGINE=InnoDB DEFAULT CHARSET = utf8;Query OK, 0 rows affected (0.16 sec)

DROP TABLE table_name;            //删除数据表

INSERT INTO table_name (field1, field2, ... fieldN) VALUES (value1, value2, ...valueN);            //插入数据

SELECT column_name, column_name FROM table_name [WHERE Clause] [OFFSET M] [LIMIT N];    //查询数据

UPDATE table_name SET field1=new-value1, field2=new-value2 [WHERE Clause];           //更新数据

DELETE FROM table_name [WHERE Clause];              //删除数据

SELECT field1, field2, ... fieldN table_name1, table_name2,... table_nameN WHERE field1 LIKE condition1;            //where从句中like和%的使用

SELECT field1, field2, ...fieldN table_name1, table_name2, ...table_nameN ORDER BY field1, [field2...] ASC [DESC]

//排序

set names utf8;              //设置为utf8编码

SET sql_mode=‘NO_AUTO_VALUE_ON_ZERO‘;              //设置AUTO_INCREMENT的值从0开始

//GROUP BY语法,在分组的列上我们可以使用 COUNT, SUM, AVG,等函数。

SELECT column_name, function(column_name)
FROM table_name
WHERE column_name operator value
GROUP BY column_name;

实例:

mysql> SELECT name, COUNT(*) FROM   employee_tbl GROUP BY name;
mysql> SELECT name, SUM(singin) as singin_count FROM  employee_tbl GROUP BY name WITH ROLLUP;
mysql> SELECT coalesce(name, ‘总数‘), SUM(singin) as singin_count FROM  employee_tbl GROUP BY name WITH ROLLUP;

//MySQL连接的使用

//使用INNER JOIN

例:SELECT a.runoob_id, a.runoob_author, b.runoob_count FROM runoob_tbl a INNER JOIN tcount_tbl b ON a.runoob_author = b.runoob_author;

等价于:SELECT a.runoob_id, a.runoob_author, b.runoob_count FROM runoob_tbl a, tcount_tbl b WHERE a.runoob_author = b.runoob_author;

//使用LEFT JOIN

例:SELECT a.runoob_id, a.runoob_author, b.runoob_count FROM runoob_tbl a LEFT JOIN tcount_tbl b ON a.runoob_author = b.runoob_author;

//使用RIGHT JOIN

例:SELECT b.runoob_id, b.runoob_author, a.runoob_count FROM tcount_tbl a RIGHT JOIN runoob_tbl b ON a.runoob_author = b.runoob_author;

//使用NULL

必须使用IS NULL,或IS NOT NULL,或<=>用于比较两个NULL

//MySQL正则表达式

MySQL中使用 REGEXP 操作符来进行正则表达式匹配。

模式 描述
^ 匹配输入字符串的开始位置。如果设置了 RegExp 对象的 Multiline 属性,^ 也匹配 ‘\n‘ 或 ‘\r‘ 之后的位置。
$ 匹配输入字符串的结束位置。如果设置了RegExp 对象的 Multiline 属性,$ 也匹配 ‘\n‘ 或 ‘\r‘ 之前的位置。
. 匹配除 "\n" 之外的任何单个字符。要匹配包括 ‘\n‘ 在内的任何字符,请使用象 ‘[.\n]‘ 的模式。
[...] 字符集合。匹配所包含的任意一个字符。例如, ‘[abc]‘ 可以匹配 "plain" 中的 ‘a‘。
[^...] 负值字符集合。匹配未包含的任意字符。例如, ‘[^abc]‘ 可以匹配 "plain" 中的‘p‘。
p1|p2|p3 匹配 p1 或 p2 或 p3。例如,‘z|food‘ 能匹配 "z" 或 "food"。‘(z|f)ood‘ 则匹配 "zood" 或 "food"。
* 匹配前面的子表达式零次或多次。例如,zo* 能匹配 "z" 以及 "zoo"。* 等价于{0,}。
+ 匹配前面的子表达式一次或多次。例如,‘zo+‘ 能匹配 "zo" 以及 "zoo",但不能匹配 "z"。+ 等价于 {1,}。
{n} n 是一个非负整数。匹配确定的 n 次。例如,‘o{2}‘ 不能匹配 "Bob" 中的 ‘o‘,但是能匹配 "food" 中的两个 o。
{n,m} m 和 n 均为非负整数,其中n <= m。最少匹配 n 次且最多匹配 m 次。

//MySQL事务

1,开始一个事务

start transaction

2, 做保存点

savepoint 保存点名称

3, 操作

4,可以回滚,可以提交,没有问题,就提交,有问题就回滚。

例:

SET AUTOCOMMIT = 0;               //设置为不自动提交,因为MYSQL默认立即执行

BEGIN;             //开始事务定义

...;             //操作

ROLLBACK;             //有问题回滚

COMMIT;               //成功则执行事务

//MySQL的ALTER命令

//添加删除表字段

ALTER TABLE testalter_tbl  DROP i;             //删除i字段,不能删除最后一个字段

ALTER TABLE testalter_tbl ADD i INT;         //增加i字段并定义类型

ALTER TABLE testalter_tbl ADD i INT FIRST;             //使用MySQL提供的关键字 FIRST (设定位第一列)

ALTER TABLE testalter_tbl ADD i INT AFTER c;                 //AFTER 字段名(设定位于某个字段之后)

//修改字段类型和名称

ALTER TABLE testalter_tbl MODIFY c CHAR(10);                //把字段 c 的类型从 CHAR(1) 改为 CHAR(10)

ALTER TABLE testalter_tbl CHANGE i j BIGINT;              //把字段i名称改为j,并将类型改为BIGINT

ALTER TABLE testalter_tbl MODIFY j BIGINT NOT NULL DEFAULT 100;      //指定字段 j 为 NOT NULL 且默认值为100,若不指定默认值为NULL

//修改字段默认值

ALTER TABLE testalter_tbl ALTER i SET DEFAULT 1000;            //使用 ALTER 来修改字段的默认值

ALTER TABLE testalter_tbl ALTER i DROP DEFAULT;              //使用 ALTER 命令及 DROP子句来删除字段的默认值

//修改表名

ALTER TABLE testalter_tbl RENAME TO alter_tbl;        //将数据表 testalter_tbl 重命名为 alter_tbl

//MySQL创建索引

//普通索引

CREATE INDEX indexName ON tableName(columnName(length));        //创建索引,方法1

ALTER TABLE tableName ADD INDEX indexName(columnName(length));             //修改表结构,方法2

CREATE TABLE mytable( ID INT NOT NULL,  username VARCHAR(16) NOT NULL, INDEX [indexName] (username(length)));             //创建表时直接指定,方法3

DROP INDEX indexName ON tableName;                //删除索引

//唯一索引

ALTER TABLE tbl_name ADD PRIMARY KEY (column_list);              //添加一个主键,要确保主键不为NULL

CREATE UNIQUE INDEX indexName ON mytable(username(length));              //创建索引,方法1

ALTER table mytable ADD UNIQUE [indexName] (username(length));               //修改表结构,方法2

CREATE TABLE mytable( ID INT NOT NULL,  username VARCHAR(16) NOT NULL, UNIQUE [indexName] (username(length)));                          //创建表时指定,方法3

ALTER TABLE tbl_name ADD FULLTEXT index_name (column_list);               //添加全文索引

ALTER TABLE tbl_name DROP INDEX (column_list);                 //删除索引

ALTER TABLE tbl_name DROP PRIMARY KEY;          //删除主键

SHOW INDEX FROM tableName\G;                 //显示索引信息


//MySQL临时表

CREATE TEMPORARY TABLE tableName (...);             //创建临时表

删除临时表与删除其他表一样,但show tables不能显示临时表


//MySQL复制表

SHOW CREATE TABLE runoob_tbl \G;                      //获取创建数据表(CREATE TABLE) 语句

复制以下命令显示的SQL语句,修改数据表名,并执行SQL语句,通过以上命令 将完全的复制数据表结构。

INSERT INTO ... SELECT... 语句来实现复制表的内容

mysql> INSERT INTO clone_tbl (runoob_id,->                        runoob_title,->                        runoob_author,->                        submission_date)-> SELECT runoob_id,runoob_title,->        runoob_author,submission_date
    -> FROM runoob_tbl;

//获取服务器元数据

SELECT VERSION();            //服务器版本信息

SELECT DATABASE();               //当前数据库名

SELECT USER();         //当前用户名

SHOW STATUS;          //服务器状态

SHOW VARIABLES;           //服务器配置变量

//MySQL序列使用

使用AUTO_INCREMENT定义列

LAST_INSERT_ID()             //获取最后的插入表中的自增的值的函数

重置序列:

mysql> ALTER TABLE insect DROP id;
mysql> ALTER TABLE insect
    -> ADD id INT UNSIGNED NOT NULL AUTO_INCREMENT FIRST,-> ADD PRIMARY KEY (id);

设置序列的开始值:

mysql> ALTER TABLE t AUTO_INCREMENT = 100;

或者在创建时直接AUTO_INCREMENT = 100

//MySQL处理重复数据

防止表中出现重复数据

防止重复插入:

INSERT IGNORE INTO

REPLACE INTO

设置唯一索引:

CREATE TABLE person_tbl
(
   first_name CHAR(20) NOT NULL,
   last_name CHAR(20) NOT NULL,
   sex CHAR(10)
   UNIQUE (last_name, first_name));

统计重复数据:

mysql> SELECT COUNT(*) as repetitions, last_name, first_name
    -> FROM person_tbl
    -> GROUP BY last_name, first_name
    -> HAVING repetitions > 1;

过滤重复数据:

mysql> SELECT DISTINCT last_name, first_name
    -> FROM person_tbl
    -> ORDER BY last_name;

或使用GROUP BY来读取

删除重复数据:

mysql> CREATE TABLE tmp SELECT last_name, first_name, sex
    ->                  FROM person_tbl;->                  GROUP BY (last_name, first_name);
mysql> DROP TABLE person_tbl;
mysql> ALTER TABLE tmp RENAME TO person_tbl;

或者通过添加主键/索引的方法:

mysql> ALTER IGNORE TABLE person_tbl
    -> ADD PRIMARY KEY (last_name, first_name);

//MySQL导出数据

使用SELECT ... INTO OUTFILE ...语句导出数据

mysql> SELECT * FROM runoob_tbl
    -> INTO OUTFILE ‘/tmp/tutorials.txt‘;

指定格式,如CSV格式:

mysql> SELECT * FROM passwd INTO OUTFILE ‘/tmp/tutorials.txt‘-> FIELDS TERMINATED BY ‘,‘ ENCLOSED BY ‘"‘-> LINES TERMINATED BY ‘\r\n‘;

SELECT a,b,a+b INTO OUTFILE ‘/tmp/result.text‘
FIELDS TERMINATED BY ‘,‘ OPTIONALLY ENCLOSED BY ‘"‘
LINES TERMINATED BY ‘\n‘
FROM test_table;

使用LOAD DATA INFILE可以将文件读回数据库

导出表作为原始数据:

mysqldump是mysql用于转存储数据库的实用程序。它主要产生一个SQL脚本,其中包含从头重新创建数据库所必需的命令CREATE TABLE INSERT等。

$ mysqldump -u root -p --no-create-info             --tab=/tmp RUNOOB runoob_tbl
password ******

导出SQL格式的数据:

$ mysqldump -u root -p RUNOOB runoob_tbl > dump.txt
password ******

导出整个数据库:

$ mysqldump -u root -p RUNOOB > database_dump.txt
password ******

导出所有数据库:

$ mysqldump -u root -p --all-databases > database_dump.txt
password ******

将数据库拷贝到其他主机:

$ mysqldump -u root -p database_name table_name > dump.txt
password *****
$ mysql -u root -p database_name < dump.txt
password *****
你也可以使用以下命令将导出的数据直接导入到远程的服务器上,但请确保两台服务器是相通的,是可以相互访问的:</p>
$ mysqldump -u root -p database_name        | mysql -h other-host.com database_name

//MySQL导入数据

使用LOAD DATA导入数据

mysql> LOAD DATA LOCAL INFILE ‘dump.txt‘ INTO TABLE mytbl;

如果指定LOCAL关键词,则表明从客户主机上按路径读取文件。如果没有指定,则文件在服务器上按路径读取文件。

指定FIELDS和LINES

mysql> LOAD DATA LOCAL INFILE ‘dump.txt‘ INTO TABLE mytbl
  -> FIELDS TERMINATED BY ‘:‘-> LINES TERMINATED BY ‘\r\n‘;

指定顺序

mysql> LOAD DATA LOCAL INFILE ‘dump.txt‘-> INTO TABLE mytbl (b, c, a);

使用mysqlimport导入数据

$ mysqlimport -u root -p --local --fields-terminated-by=":"    --lines-terminated-by="\r\n"  database_name dump.txt
password *****

使用 --columns 选项来设置列的顺序

$ mysqlimport -u root -p --local --columns=b,c,a     database_name dump.txt
password *****

mysqlimport的常用选项介绍

选项 功能
-d or --delete 新数据导入数据表中之前删除数据数据表中的所有信息
-f or --force 不管是否遇到错误,mysqlimport将强制继续插入数据
-i or --ignore mysqlimport跳过或者忽略那些有相同唯一 关键字的行, 导入文件中的数据将被忽略。
-l or -lock-tables 数据被插入之前锁住表,这样就防止了, 你在更新数据库时,用户的查询和更新受到影响。
-r or -replace 这个选项与-i选项的作用相反;此选项将替代 表中有相同唯一关键字的记录。
--fields-enclosed- by= char 指定文本文件中数据的记录时以什么括起的, 很多情况下 数据以双引号括起。 默认的情况下数据是没有被字符括起的。
--fields-terminated- by=char 指定各个数据的值之间的分隔符,在句号分隔的文件中, 分隔符是句号。您可以用此选项指定数据之间的分隔符。 默认的分隔符是跳格符(Tab)
--lines-terminated- by=str 此选项指定文本文件中行与行之间数据的分隔字符串 或者字符。 默认的情况下mysqlimport以newline为行分隔符。 您可以选择用一个字符串来替代一个单个的字符: 一个新行或者一个回车。

SQL数据类型

INTEGER或INT 通常为32位整数
SMALLINT 通常为16位整数
NUMERIC(m, n), DECIMAL(m, n) 或 DEC(m, n) m位长的定点十进制数,其中小数点后为n位
FLOAT(n) 运算精度为n位二进制数的浮点数
REAL 通常为32位浮点数
DOUBLE 通常为64位浮点数
CHARACTER(n)或CHAR(n) 固定长度为n的字符串
VARCHAR(n) 最大长度为n的字符串
BOOLEAN 布尔值
DATE 日历日期
TIME 当前时间
TIMESTAMP 当前日期和时间
BLOB 二进制大对象
CLOB 字符大对象


//增加外键约束

CREATE TABLE property (

id int(11) NOT NULL AUTO_INCREMENT,

cid int(11) DEFAULT NULL,

name varchar(255) DEFAULT NULL,

PRIMARY KEY (id),

CONSTRAINT fk_property_category FOREIGN KEY (cid) REFERENCES category (id)

) ENGINE=InnoDB DEFAULT CHARSET=utf8;

或者

CREATE TABLE property (

id int(11) NOT NULL PRIMARY KEY AUTO_INCREMENT,

cid int(11) DEFAULT NULL FOREIGN KEY REFERENCES category (id),

name varchar(255) DEFAULT NULL

) ENGINE=InnoDB DEFAULT CHARSET=utf8;

表创建好后再加约束

ALTER TABLE 表名 ADD CONSTRAINT fk_字段名 FOREIGN KEY (字段名) REFERENCES 关联的表名(关联的字段名)



























				
时间: 2024-10-12 09:05:10

学习笔记--MySQL的相关文章

Mysql DBA高级运维学习笔记-mysql数据库介绍

本文为我自己学习老男孩MySQL DBA 高级运维课程的学习笔记,内容均出自老男孩MySQL DBA 高级运维课程,老男孩老师讲的很好,非常感谢老男孩老师.我是一个菜鸟刚接触运维,如果我写的文章有不对的地方:请各位行业的精英.老师多多批评指点,呵呵~ 1.1 数据库介绍 1.1.1 什么是数据库?简单的说,数据库就是一个存放数据的仓库,这个仓库是按照一定的数据结构(数据结构是指数据的组织形式或数据之间的联系)来组织.存储的,我们可以通过数据库提供的多种方法来管理数据库里的数据. 1.2 数据库的

MySQL学习笔记-MySQL体系结构

一.MySQL体系结构总览 不管是用哪种数据库,了解数据库的体系结构都是极为重要的.MySQL体系结构主要由数据库和数据库实例构成. 数据库:物理操作系统文件或者其它文件的集合,在mysql中,数据库文件可以是frm.myd.myi.ibd等结尾的文件,当使用ndb存储引擎时候,不是os文件,是存放于内存中的文件. 数据库实例:由数据库后台进程/线程以及一个共享内存区组成,共享内存可以被运行的后台进程/线程所共享. 以下为MySQL数据库的体系结构: 最上层的服务并不是MySQL所独有的,大多数

Mysql DBA 高级运维学习笔记-mysql建表语句及表知识

9.9 表操作 9.9.1以默认字符集建库 以默认格式的为例,指定字符集建库 [email protected] 07:0205->create database wwn; Query OK, 1 row affected (0.00 sec) [email protected] 07:0339->SHOW CREATE DATABASE wwn\G; *************************** 1. row *************************** Database

Mysql DBA 高级运维学习笔记-Mysql增量备份及数据恢复实战

大家好本文讲了mysql数据库的增量恢复.老男孩老师讲的很好很细,我自己呢整理了老师讲的部分内容,请大家将就看:文章内容比较多.比较乱,请大家认真总结知识,发现问题请及时批评指点~ 1.1 MySQL数据库的备份与恢复 1.1.1备份单个数据库练习多种参数使用 Mysql数据库自带了一个很好用的备份命令,就是mysqldump, 它的基本使用如下: 语法:mysqldump –u用户名 –p密码 数据库名>备份的文件名 范烈1:备份名字为cuizhong的库 a.查看备份前的数据 [[email

PHP学习笔记------MYSQL

/* 启动MySQL */net start mysql /* 连接与断开服务器 */mysql -h 地址 -P 端口 -u 用户名 -p 密码 /* 跳过权限验证登录MySQL */mysqld --skip-grant-tables-- 修改root密码密码加密函数password()update mysql.user set password=password('root'); SHOW PROCESSLIST -- 显示哪些线程正在运行SHOW VARIABLES -- /* 数据库操

Java学习笔记——MySQL开放3306接口与设置用户权限

系统Ubuntu16.04 LTS 1.开放3306端口查看端口状态:netstat -an|grep 3306tcp        0      0 127.0.0.1:3306          0.0.0.0:*               LISTEN目前只有本机可以访问     输入指令:sudo vim /etc/mysql/mysql.conf.d/mysqld.cnf如果之前配置过全局配置文件,也可输入指令:sudo vim /etc/mysql/my.cnf修改文件,找到下面那

数据库学习笔记——MySQL卸载

1.控制面板里的增加删除程序内进行删除 2.删除MySQL文件夹下的my.ini文件,如果备份好,可以直接将文件夹全部删除 3.看看注册表里这几个地方删除没有 HKEY_LOCAL_MACHINE/SYSTEM/ControlSet001/Services/Eventlog/Application/MySQL 目录删除 HKEY_LOCAL_MACHINE/SYSTEM/ControlSet002/Services/Eventlog/Application/MySQL 目录删除 HKEY_LOC

学习笔记 MYSQL报错注入(count()、rand()、group by)

首先看下常见的攻击载荷,如下: select count(*),(floor(rand(0)*2))x from table by x; 然后对于攻击载荷进行解释, floor(rand(0)*2) 查询表中内容大于等于3条会报错.一部分原因,因为floor(rand(0)*2)是有规律和固定的. 如果不理解,可以用数据库做下实验.select floor(rand(0)*2) from table ,数据量最好10条左右.你会发现一串0110110011--有规律的数字. 再然后select

学习笔记--mysql的AB复制

MySQL 提供了数据库的同步功能,这对我们实现数据库的冗灾.备份.恢复.负载均衡等都是有极大帮助的. 客户端的数据全部写入mysql主服务器中,主服务器将数据同步至从服务器,当用户读取数据时在从服务器中进行读取,极大降低了主服务器的压力,提高了整体业务的水平 实验环境:master:server6 slave:server7 Mysql版本:Ver 14.14 Distrib 5.1.71 Master 配置: vim   /etc/my.cnf 在[mysqld]下添加一下参数 log-bi

linux 学习笔记 mysql安装总结

1 安装方式 下载2禁制源码安装包 mysql-5.5.27-linux2.6-i686.tar.gz 备注:2禁制额包解压缩后直接就可以使用 不用Make 2 步骤 shell>groupadd mysql shell>useradd -d /home/mysql -m mysql -g mysql shell>cd /usr/local shell>mkdir mysql shell>cp /mnt/hgfs/Exchange \Data/MYSQL_Linux/mysq