`
sanry
  • 浏览: 37107 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

mysql

阅读更多

用户使用mysql命令配置

ln -fs /usr/local/mysql/bin/mysql /usr/bin

ln -s /usr/local/mysql/bin/mysqldump /usr/bin/mysqldump

重启:

sudo /usr/local/mysql/support-files/mysql.server restart

 

二、查询database中表信息

SELECT * FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_SCHEMA = 'databasename';

三、查询列信息

select * from INFORMATION_SCHEMA.Columns where table_name='tablename' and table_schema='databasename';

select column_name,column_comment,column_type,is_nullable,concat(column_key,',',column_default) from INFORMATION_SCHEMA.Columns where table_name='tablename' and table_schema='databasename';

四、mysql现在已提供什么存储引擎:

show engines;

五、mysql当前默认的存储引擎:

show variables like '%storage_engine%';

六、某个表用了什么引擎

mysql> show create table 表名;

七、生成修改引擎

SET @DATABASE_NAME = 'smallbss';

SELECT  CONCAT('ALTER TABLE `', table_name, '` ENGINE=InnoDB;') AS sql_statements

FROM    information_schema.tables AS tb

WHERE   table_schema = @DATABASE_NAME

AND     `ENGINE` = 'MyISAM'

AND     `TABLE_TYPE` = 'BASE TABLE'

ORDER BY table_name DESC;

八、通过多记录表生成序列号

select (select count(*) from USER where user_id<=a.user_id) as rownum from USER a order by rownum;

九、列出MYSQL支持的所有字符集:

SHOW CHARACTER SET;

十、字符集设置

1、查询字符集

SHOW VARIABLES LIKE 'character_set_%';

2、当前MYSQL服务器字符集校验设置

SHOW VARIABLES LIKE 'collation_%';

3、显示某数据库字符集设置

show create database 数据库名;

4、显示某数据表字符集设置

show create table 表名;

5、修改数据库字符集

alter database 数据库名default character set 'utf8';

6、修改表默认字符集

alter table smallbss.settle_plan_rate convert to character set utf8;

十一、导出

1.导出所有库数据

mysqldump -uroot -p --all-databases > all.sql

2.导出数据忽略某个表 --ignore-table=dbname.tablename,可以忽略多个。

mysqldump -uroot -p123456 dbname --ignore-table=dbname.tb1 --ignore-table=dbname.tb2 > ./db_files/dsp.sql

3.导出数据和表结构:

mysqldump -u用户名 -p密码 数据库名 > 数据库名.sql

4.只导出表结构

mysqldump -u用户名 -p密码 -d 数据库名 > 数据库名.sql

5.导出数据中dbname多张表(test1,test2,test3)结构及表数据用用空格隔开

mysqldump -uroot -pdbpasswd dbname test1 test2 test3>db.sql;

6.导出csv格式文件

select * from user where carrier_code='2016021' into outfile '/usr/local/mysql/data/user_Invisimax.csv'  fields terminated by ',' optionally enclosed by '"' lines terminated by '\n';

7.导出带标题csv文件

select imsi,state,ki,opc from (select 'imsi','state','ki','opc' union select imsi,state,ki,opc from baisim where imsi like '00%' ) t into outfile '/home/data/mysql/imsi_info.csv'  fields terminated by ',' optionally enclosed by '"' lines terminated by '\n';

十二、建空数据库

create database abc;

十三、导入

导入数据库

方法一:

(1)选择数据库

mysql>use abc;

(2)设置数据库编码

mysql>set names utf8;

(3)导入数据(注意sql文件的路径)

mysql>source /home/abc/abc.sql;

方法二:

mysql -u用户名 -p密码 数据库名 < 数据库名.sql

#mysql -uabc_f -p abc < abc.sql

十四、sql语句例子

1.有则更新无则插入

INSERT table (auto_id, auto_name) values (1, ‘yourname') ON DUPLICATE KEY UPDATE auto_name='yourname';

INSERT INTO tb (SELECT * FROM tmp)

ON DUPLICATE KEY UPDATE 

tb.`role_level` = 

(

SELECT role_level FROM tmp WHERE tmp.user_id = tb.`user_id` AND tmp.role_name = tb.`role_name`

);

2.用一个表更新另一个表

修改1列

update student s, city c

   set s.city_name = c.name

 where s.city_code = c.code;

修改多个列

update  a,  b 

set a.title=b.title, a.name=b.name

where a.id=b.id

3.查询重复记录

select user_name,count(*) as count from user_table group by user_name having count>1;

 

十五、日期函数

SELECT DATE_ADD(expire_date,INTERVAL 2 DAY) AS OrderPayDate FROM smallbss.user

DATE_FORMAT() 函数用于以不同的格式显示日期/时间数据。

DATE_FORMAT(NOW(),'%b %d %Y %h:%i %p')  

DATE_FORMAT(NOW(),'%m-%d-%Y')  

DATE_FORMAT(NOW(),'%d %b %y')  

DATE_FORMAT(NOW(),'%d %b %Y %T:%f') 

十六、用户管理

查看

mysql> select host,user,password from user ;

创建

mysql> create user  zx_root   IDENTIFIED by 'xxxxx';   //identified by 会将纯文本密码加密作为散列值存储

create user 'selectuser'@'%' IDENTIFIED BY 'baicells@NAselect';

修改

mysql>rename   user  feng  to   newuser;//mysql 5之后可以使用,之前需要使用update 更新user表

删除

mysql>drop user newuser;   //mysql5之前删除用户时必须先使用revoke 删除用户权限,然后删除用户,mysql5之后drop 命令可以删除用户的同时删除用户的相关权限

更改密码

mysql> set password for zx_root =password('xxxxxx');

 mysql> update  mysql.user  set  password=password('xxxx')  where user='otheruser'

查看用户权限

mysql> show grants for zx_root;

赋予权限

mysql> grant select on dmc_db.*  to zx_root;

GRANT SELECT ON smallbss.* TO 'selectuser'@'%';

grant all privileges on *.* to 'bossquery'@"%" identified by "12345";

回收权限

mysql> revoke  select on dmc_db.*  from  zx_root;  //如果权限不存在会报错

上面的命令也可使用多个权限同时赋予和回收,权限之间使用逗号分隔

mysql> grant select,update,delete  ,insert  on dmc_db.*  to  zx_root;

如果想立即看到结果使用

flush  privileges ;

 

grant和revoke可以在几个层次上控制访问权限

1,整个服务器,使用 grant ALL  和revoke  ALL

2,整个数据库,使用on  database.*

3,特点表,使用on  database.table

4,特定的列

5,特定的存储过程

 

user表中host列的值的意义

%              匹配所有主机

localhost    localhost不会被解析成IP地址,直接通过UNIXsocket连接

127.0.0.1      会通过TCP/IP协议连接,并且只能在本机访问;

::1                 ::1就是兼容支持ipv6的,表示同ipv4的127.0.0.1

 

grant 普通数据用户,查询、插入、更新、删除 数据库中所有表数据的权利。

grant select on testdb.* to common_user@’%’

grant insert on testdb.* to common_user@’%’

grant update on testdb.* to common_user@’%’

grant delete on testdb.* to common_user@’%’

或者,用一条 MySQL 命令来替代:

grant select, insert, update, delete on testdb.* to common_user@’%’

 

修改用户密码:

delete from user where USER='';

FLUSH PRIVILEGES;

update mysql.user set password=password('boss123') where user='bossquery';

 

grant 创建、修改、删除 MySQL 数据表结构权限。

grant create on testdb.* to developer@’192.168.0.%’;

grant alter on testdb.* to developer@’192.168.0.%’;

grant drop on testdb.* to developer@’192.168.0.%’;

 

grant 操作 MySQL 外键权限。

grant references on testdb.* to developer@’192.168.0.%’;

 

grant 操作 MySQL 临时表权限。

grant create temporary tables on testdb.* to developer@’192.168.0.%’;

 

grant 操作 MySQL 索引权限。

grant index on testdb.* to developer@’192.168.0.%’;

 

grant 操作 MySQL 视图、查看视图源代码 权限。

grant create view on testdb.* to developer@’192.168.0.%’;

grant show view on testdb.* to developer@’192.168.0.%’;

 

grant 操作 MySQL 存储过程、函数 权限。

grant create routine on testdb.* to developer@’192.168.0.%’; -- now, can show procedure status

grant alter routine on testdb.* to developer@’192.168.0.%’; -- now, you can drop a procedure

grant execute on testdb.* to developer@’192.168.0.%’;

 

grant 普通 DBA 管理某个 MySQL 数据库的权限。

grant all privileges on testdb to dba@’localhost’

其中,关键字 “privileges” 可以省略。

 

grant 高级 DBA 管理 MySQL 中所有数据库的权限。

grant all on *.* to dba@’localhost’

MySQL grant 权限,分别可以作用在多个层次上。

1. grant 作用在整个 MySQL 服务器上:

grant select on *.* to dba@localhost; -- dba 可以查询 MySQL 中所有数据库中的表。

grant all on *.* to dba@localhost; -- dba 可以管理 MySQL 中的所有数据库

2. grant 作用在单个数据库上:

grant select on testdb.* to dba@localhost; -- dba 可以查询 testdb 中的表。

3. grant 作用在单个数据表上:

grant select, insert, update, delete on testdb.orders to dba@localhost;

4. grant 作用在表中的列上:

grant select(id, se, rank) on testdb.apache_log to dba@localhost;

5. grant 作用在存储过程、函数上:

grant execute on procedure testdb.pr_add to ’dba’@’localhost’

grant execute on function testdb.fn_add to ’dba’@’localhost’

注意:修改完权限以后 一定要刷新服务,或者重启服务,刷新服务用:FLUSH PRIVILEGES

 

十七、查看mysql连接情况

查看mysql的最大并发连接数:

mysql> show variables like 'max_connections';

 

设置mysql最大连接数:

方法一:进入MYSQL安装目录 打开MYSQL配置文件 my.ini 或 my.cnf查找 max_connections=100   修改为 max_connections=1000 服务里重起MYSQL即可

方法二:MySQL的最大连接数默认是100客户端登录:mysql -uusername -ppassword

设置新的最大连接数为200:mysql> set GLOBAL max_connections=200

显示当前运行的Query:mysql> show processlist

 

显示当前状态:mysql> show status

Threads_connected 当前的连接数,

Connections 试图连接到(不管是否成功)MYSQL服务器的连接总数, 

Max_used_connections 服务器启动后已经同时使用过的连接最大数量(并发)

 

show processlist  显示当前正在执行的mysql连接

mysql> show processlist;

 

mysqladmin -u -p -h status    显示当前mysql状态

  mysqladmin -uroot -p -hlocalhost status

 

显示mysql的其他状态

mysqladmin -u -p -h extended-status 

 

十八、字符串

拼接字符串

 

1、CONCAT(string1,string2,…)   

string1,string2代表字符串,concat函数在连接字符串的时候,只要其中一个是NULL,那么将返回NULL

 

2、CONCAT_WS(separator,str1,str2,...)

说明 : string1,string2代表字符串,concat_ws 代表 concat with separator,第一个参数是其它参数的分隔符。分隔符的位置放在要连接的两个字符串之间。分隔符可以是一个字符串,也可以是其它参数。如果分隔符为 NULL,则结果为 NULL。函数会忽略任何分隔符参数后的 NULL 值。

 

分隔字符串:

从第9个字符开始截取到最后。SUBSTRING的参数有三个,最后一个是截取的长度,默认是到结尾,负数是倒数第几位

SUBSTRING(commentid,9)

 

以 - 进行拆分字符串,从第一个关键词开始取前面所有的字符串。如果上面的第三个参数修改为 -1,那么就是取倒数第一个

SUBSTRING_INDEX(commentid, '-', 1)

 

从c-11065-50 中,取出50

SELECT SUBSTRING_INDEX(checkid,'-',-1) FROM `check` WHERE checkid = 'c-11065-50'

 

取得11065的写法:

SELECT SUBSTRING_INDEX(SUBSTRING_INDEX(checkid,'-',-2),'-',1) FROM check WHERE checkid = 'c-11065-50'

或者:

SELECT SUBSTRING_INDEX(SUBSTRING_INDEX(checkid,'-',2),'-',-1) FROM check WHERE checkid = 'c-11065-50'

 

截取:content_13-11220-1中的13:

SELECT SUBSTRING_INDEX(SUBSTRING_INDEX(SUBSTRING(commentid,9), '-', 1), '-',-1) FROM check WHERE commentid = 'content_13-11220-1'

或者

SELECT SUBSTRING_INDEX(SUBSTRING_INDEX(commentid, '-', 1), '_',-1) FROM check WHERE commentid = 'content_13-11220-1'

 

十九、Linux下彻底卸载mysql详解

一、使用以下命令查看当前安装mysql情况,查找以前是否装有mysql

1、rpm -qa|grep -i mysql

显示之前安装了:

     MySQL-client-5.5.25a-1.rhel5

     MySQL-server-5.5.25a-1.rhel5

2、停止mysql服务、删除之前安装的mysql

删除命令:rpm -e –nodeps 包名

rpm -ev MySQL-client-5.5.25a-1.rhel5 

rpm -ev MySQL-server-5.5.25a-1.rhel5

如果提示依赖包错误,则使用以下命令尝试

rpm -ev MySQL-client-5.5.25a-1.rhel5 --nodeps

如果提示错误:error: %preun(xxxxxx) scriptlet failed, exit status 1

则用以下命令尝试:

rpm -e --noscripts MySQL-client-5.5.25a-1.rhel5

3、查找之前老版本mysql的目录、并且删除老版本mysql的文件和库

find / -name mysql

查找结果如下:

find / -name mysql 

/var/lib/mysql

/var/lib/mysql/mysql

/usr/lib64/mysql

删除对应的mysql目录

rm -rf /var/lib/mysql

rm -rf /var/lib/mysql

rm -rf /usr/lib64/mysql

具体的步骤如图:查找目录并删除

注意:卸载后/etc/my.cnf不会删除,需要进行手工删除

rm -rf /etc/my.cnf

分享到:
评论

相关推荐

    MYSQL

    4.12.1 在 Win32 上安装 MySQL 4.12.2 在 Win95 /Win98上启动 MySQL 4.12.3 在 NT 上启动 MySQL 4.12.4 在 Win32 上运行 MySQL 4.12.5 用 SSH 从 Win32 连接一个远程MySQL 4.12.6 MySQL-Win...

    MySQL中文参考手册.chm

    MySQL中文参考手册.chm 449kb &lt;br/&gt;0 译者序 1 MySQL的一般的信息 1.1 什么是MySQL? 1.2 关于本手册 1.2.1 本手册中使用的约定 1.3 MySQL的历史 1.4 MySQL的主要特征 1.5...

    mysql5.5、mysql5.6、mysql5.7、mysql8 各种版本最新下载合集

    mysql5.5、mysql5.5、mysql5.7、mysql8 各种版本最新下载合集 MySQL是一种关联数据库管理系统,关联数据库将数据保存在不同的表中,而不是将所有数据放在一个大仓库内,这样就增加了速度并提 高了灵活性。 MySQL...

    MySql 5.1 参考手册.chm

    1.7.3. MySQL论坛上的MySQL社区支持 1.8. MySQL标准的兼容性 1.8.1. MySQL遵从的标准是什么 1.8.2. 选择SQL模式 1.8.3. 在ANSI模式下运行MySQL 1.8.4. MySQL对标准SQL的扩展 1.8.5. MySQL与标准SQL的差别 1.8.6. ...

    新版 MySQL DBA 高级视频 基于MySQL 5.7 MySQL 8.0版本.rar

    ├─新版MySQL DBA 课件ppt │ 第一课数据库介绍篇.pdf │ 第七课MySQL数据库设计.pdf │ 第三十一课percona-toolkits 的实战及自动化.pdf │ 第三课MySQL授权认证.pdf │ 第九课MySQL字符集.pdf │ 第二十一课MySQL...

    mysql8.0升级版本

    MySQL 8.0 升级版本 在本文中,我们将详细介绍 MySQL 8.0 升级版本的步骤和注意事项。MySQL 是一个流行的开源关系数据库管理系统,广泛应用于各种Web 应用程序中。升级 MySQL 版本可以提高数据库性能、修复 bugs 和...

    C#连接MySQL需要的MySql.Data.dll,MySql.Web.dll

    在C#编程环境中,连接MySQL数据库通常依赖于特定的数据提供者,这就是MySql.Data.dll和MySql.Web.dll的角色。这两个动态链接库(DLL)文件是MySQL官方提供的.NET数据访问组件,使得C#开发者能够轻松地与MySQL服务器...

    mysql57驱动jar包

    mysql57驱动jar包mysql57驱动jar包mysql57驱动jar包mysql57驱动jar包mysql57驱动jar包mysql57驱动jar包mysql57驱动jar包mysql57驱动jar包mysql57驱动jar包mysql57驱动jar包mysql57驱动jar包mysql57驱动jar包mysql57...

    Mysql5.6、Mysql5.7 JDBC驱动

    MySQL是世界上最受欢迎的关系型数据库管理系统之一,而JDBC(Java Database Connectivity)是Java语言与数据库交互的标准接口。本文将深入探讨Mysql5.6和Mysql5.7的JDBC驱动,以及如何使用`mysql-connector-java-...

    Windows mysql8.0.36.0详细安装教程,附带MySQL安装包

    在本教程中,我们将深入探讨如何在Windows操作系统上详细安装MySQL 8.0.36.0。MySQL是一个广泛使用的开源关系型数据库管理系统(RDBMS),它在各种规模的企业和项目中扮演着核心角色。MySQL 8.0版本带来了许多性能...

    MySQL ODBC 5.1 Driver(Mysql驱动免安装版)

    MySQL ODBC 5.1 Driver 是一个用于连接MySQL数据库的开放数据库连接(ODBC)驱动程序,它允许用户通过标准的ODBC接口访问MySQL数据库,适用于Windows操作系统。这个版本是免安装的,意味着用户可以直接解压使用,...

    mysql驱动jar 文件适用MySQL5.7

    MySQL驱动jar文件是Java应用程序与MySQL数据库之间通信的关键组件,主要功能是提供Java Database Connectivity (JDBC) API,使得Java开发者能够通过编写Java代码来执行SQL语句,从而操作MySQL数据库。标题提到的...

    mysql5.1中文手册

    MySQL论坛上的MySQL社区支持 1.8. MySQL标准的兼容性 1.8.1. MySQL遵从的标准是什么 1.8.2. 选择SQL模式 1.8.3. 在ANSI模式下运行MySQL 1.8.4. MySQL对标准SQL的扩展 1.8.5. MySQL与标准SQL的...

    mysql 5.7 中文文档

    MySQL 5.7中文文档是针对这个特定数据库版本的详细技术参考,包含了丰富的信息,适合开发者、管理员和学习者使用。文档的翻译质量被描述为“还行”,尽管资源可能不易找到,但提供了全面的指南。 该文档涵盖了从...

    mysql数据库镜像安装包+教程(5.7版本)

    mysql5.7安装教程+mysql5.7镜像安装+mysql学习+mysql5.7镜像包 mysql5.7安装教程+mysql5.7镜像安装+mysql学习+mysql5.7镜像包 mysql5.7安装教程+mysql5.7镜像安装+mysql学习+mysql5.7镜像包 mysql5.7安装教程+mysql...

    mysql8、mysql5两个版本驱动

    MySQL是世界上最受欢迎的关系型数据库管理系统之一,其驱动程序是Java应用程序连接MySQL数据库的关键组件。本文将详细介绍MySQL 8和MySQL 5驱动的区别以及与JDK版本的兼容性问题。 首先,MySQL 8和5的主要区别在于...

    涂抹MySQL 跟着三思一步一步学MySQL

    《涂抹MySQL:跟着三思一步一步学MySQL》是一本旨在帮助初学者和中级用户深入理解MySQL数据库系统的教程。这本书通过清晰的解释和实例,逐步引导读者掌握MySQL的核心概念和技术。MySQL是一种广泛使用的开源关系型...

    mysql 5.5版 头文件(mysql.h等)

    例如,`mysql_init()`用于初始化一个MySQL连接结构,`mysql_real_connect()`用于建立实际的数据库连接,`mysql_query()`用于执行SQL查询,而`mysql_store_result()`和`mysql_use_result()`则用于处理查询结果。...

    mysql驱动(适用于mysql5.7版本)

    MySQL驱动是Java应用程序连接到MySQL数据库的关键组件,它允许程序通过Java Database Connectivity (JDBC) API与MySQL服务器进行通信。本压缩包包含了两个适用于MySQL 5.7版本的驱动文件:`mysql-connector-java-...

Global site tag (gtag.js) - Google Analytics