MySQL使用随笔
001 查看版本
mysql --version
mysql > select version();
mysql > status;
002 新建MySQL用户、授权
insert into mysql.user(Host,User,Password) values("localhost","username",password("yourpassword"));
GRANT ALL PRIVILEGES ON *.* TO 'username'@'localhost' IDENTIFIED BY "yourpassword" WITH GRANT OPTION;
flush privileges;
003. 查询支持的存储引擎
show engines;
004 查看变量
show variables like 'innodb%';
005 导入数据库(sql文件)
mysql -uroot -p dbname < dbname.sql
006 my.cnf说明
[client] #客户端配置
port = 3306
socket = /var/lib/mysql/mysql.sock #本地客户端使用这个socket链接mysqld
default_character_set = utf8
secure_auth = 0 #跳过密码格式不统一问题
[mysqld]
datadir=/usr/local/mysql/data #指定数据路径
socket=/var/lib/mysql/mysql.sock #使用这个socket启动server
user=mysql
old_passwords = 1
secure_auth = 0
innodb_force_recovery=0 #必须为0,否则innodb就是read only模式
[mysqld_safe]
log-error=/var/log/mysqld.log
pid-file=/var/run/mysqld/mysqld.pid
007 修改root密码
mysqld_safe --skip-grant-tables
mysql > update mysql.user set password=password("new_pass") where user="root";
008 让mysql服务器输出所有执行的SQL语句记录
mysqld --general-log=TRUE
日志输出为mysql服务器数据目录的localhost.log, 其他日志请执行mysqld --verbose --help查看
009 数据库导出导入
导出数据
mysqldump -uusername -ppassword databasename > databasename.sql
导出存储过程和函数
mysqldump -uusername -ppassword -ntd -R databasename > stored-procs.sql
只导出表结构
mysqldump -uusername -ppassword -d --add-drop-table databasename > table-init.sql
导入sql文件(可以为数据,表结构,存储过程...)
mysql -uusername -ppassword databasename < sql-file.sql
010 查看当前哪些线程在运行
mysql >show processlist;
在Info字段还可以查看执行的语句,如果有执行很慢的语句,可以直接查询到。
011 删除表记录
DELETE FROM tablename
TRUNCATE TABLE tablename
012 mysql存储过程的sql secuirty
mysql存储过程中sql secuirty决定了执行相关存储过程时的安全限制,sql secuirty可以为DEFINER或者INVOKER。
DEFINER表示执行此存储过程的用户必须是存储过程创建者且必须存在这个用户并有对应权限。
INVOKER表示执行此存储过程的用户必须是存在的用户且这个用户并有对应权限。
创建存储过程时,可以指定sql secuirty,以下例子指定sql secuirty为INVOKER。
CREATE DEFINER = 'admin'@'localhost' PROCEDURE account_count()
SQL SECURITY INVOKER
BEGIN
SELECT 'Number of accounts:', COUNT(*) FROM mysql.user;
END;
也可以通过修改mysql.proc表中对应字段security_type来设定sql secuirty。例
update mysql.proc set security_type = ...
或
alter procedure pro_name sql security invoker;
013 数据表增加字段(时间字段)
mysql> alter table mytable add column ctime datetime DEFAULT NOW() NOT NULL after flag;
Query OK, 0 rows affected (0.26 sec)
Records: 0 Duplicates: 0 Warnings: 0
014 左、右join
语法:
SELECT * FROM tableA
LEFT|RIGHT JOIN tableB
ON tableA.field1 = tableB.field2
左JOIN:以左(tableA)表为基础查出所有符合条件的tableA和tableB,tableB不存在的记录显示tableB相关字段为NULL;
右JOIN:以右(tableB)表为基础查出所有符合条件的tableA和tableB,tableA不存在的记录显示tableA相关字段为NULL;
015 修改列定义,定义索引
ALTER TABLE table_name modify column_name varchar(32);
ALTER TABLE table_name ADD INDEX `column_name` (`column_name`);
016 make mysql
http://dev.mysql.com/doc/internals/en/cmake-build-options-official-mysql.html
Unix (Makefiles)
mkdir bld
cd bld
cmake .. -DBUILD_CONFIG=mysql_release
make
注:安装libaio后如果还是提示依赖,重新执行上面步骤(删除bld)
017 mysql升级后无法赋用户权限,修正
2014-05-27 14:48:34 17291 [ERROR] Missing system table mysql.proxies_priv; please run mysql_upgrade to create it
2014-05-27 14:48:34 17291 [Warning] Info table is not ready to be used. Table 'mysql.slave_master_info' cannot be opened.
2014-05-27 14:48:34 17291 [Warning] Info table is not ready to be used. Table 'mysql.slave_relay_log_info' cannot be opened.
2014-05-27 14:48:34 17291 [ERROR] Native table 'performance_schema'.'cond_instances' has the wrong structure
2014-05-27 14:48:34 17291 [ERROR] Native table 'performance_schema'.'events_waits_current' has the wrong structure
2014-05-27 14:48:34 17291 [ERROR] Native table 'performance_schema'.'events_waits_history' has the wrong structure
2014-05-27 14:48:34 17291 [ERROR] Native table 'performance_schema'.'events_waits_history_long' has the wrong structure
2014-05-27 14:48:34 17291 [ERROR] Native table 'performance_schema'.'events_waits_summary_by_host_by_event_name' has the wrong structure
2014-05-27 14:48:34 17291 [ERROR] Native table 'performance_schema'.'events_waits_summary_by_instance' has the wrong structure
2014-05-27 14:48:34 17291 [ERROR] Native table 'performance_schema'.'events_waits_summary_by_thread_by_event_name' has the wrong structure
2014-05-27 14:48:34 17291 [ERROR] Native table 'performance_schema'.'events_waits_summary_by_user_by_event_name' has the wrong structure
2014-05-27 14:48:34 17291 [ERROR] Native table 'performance_schema'.'events_waits_summary_by_account_by_event_name' has the wrong structure
解决办法:
mysql_upgrade -u root -p
018 sql_mode doesn't have a default value null
现象是无法导入存储过程,提示如题所示的错误,解决办法,修改配置文件中sql_mode,注释掉重新启动MySQL
#sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES
如果发现执行存储过程时有默认值的情况仍旧无法插入数据,也可能是这个原因,这时要直接修改mysql.proc表中对应存储过程的sql_mode为NO_ENGINE_SUBSTITUTION即可
详细信息查看这里
也可以直接连接到mysql执行source /path/to/sql_file.sql
019 MySQL安装后没有mysql数据库
运行安装目录中的./scripts/mysql_install_db
020 mysql连接localhost
安装mysql后,只能使用localhost作为host连接,无法使用其他远程主机连接,纠结许久(防火墙好像没有限制啊!),发现mysqld是以13306端口启动的,但应用server的数据库配置中写的是3306,仍然连接成功。为什么?
原因是mysql连接localhost使用的是socket文件,而不是tcp连接,因此指定端口是无效的。如下所示的13306端口会被忽略
shell> mysql --port=13306 --host=localhost
如果需要使用TCP连接,则需要指定--host为不同于localhost,或指定以TCP方式连接。
shell>mysql --port=13306 --host=127.0.0.1
shell>mysql --port=13306 --protocol=TCP
MySQL使用随笔的更多相关文章
- Mysql查询优化随笔记录
select SQL_CALC_FOUND_ROWS * from (select * from oses_vehdata201606 union all select * from oses_ ...
- MySQL的随笔
数据库引擎 MySQL5.0支持的存储引擎包括MyISAM,InnoDB.MEMORY.MERGE.BDB等等,其中InnoDB和BDB提供事务安全表,其他存储引擎都是非事务安全表. MyISAM M ...
- 深入浅出mysql全文随笔
进入mysql :mysql -uroot -p 1.DDL(Data Definition Languages)语句:数据定义语言 2.DML(Data Manipulation Language) ...
- MySQL学习随笔记录
安装选custmer自定义安装.默认安装全部在c盘.自定义安装的时候有个advance port选项用来选择安装目录. -----------------------MySQL常见的一些操作命令--- ...
- MYSQL练习随笔
解法练习 案例1.子查询练习 字段 说明film_id 电影idtitle 电影名称description 电影描述信息category_id 电影分类idname 电影分类名称last_update ...
- MySQL -2- 体系结构--随笔小记
简介与安装NoSQLRDBMS版本安装方式二进制安装,源码安装体系结构CS模型TCP/IPsocketmysql master thread 实例mysqld 的程序构成连接层 协议.验证.链接线程S ...
- MySQL/MariaDB随笔二
mariaDB的二进制安装:系统版本和MariaDB版本 [root@ ~]# cat /etc/redhat-release CentOS Linux release (Core) [root@ ~ ...
- MySQL/MariaDB随笔一
1.yum 安装后先跑一下系统自带的安全脚本,否则数据库很不安全,任何人都可以登录 [root@xixi ~]# mysql_secure_installation NOTE: RUNNING ALL ...
- mysql时间随笔
SELECT FROM_UNIXTIME(create_time,'%Y-%m-%d %H:%i:%s') FROM `order`; select date_add(FROM_UNIXTIME(cr ...
随机推荐
- Linux输入子系统(转)
Linux输入子系统(Input Subsystem) 1.1.input子系统概述 输入设备(如按键,键盘,触摸屏,鼠标等)是典型的字符设备,其一般的工作机制是低层在按键,触摸等动作发生时产生一个中 ...
- js call与apply的区别-Tom
.apply和.call方法是在函数原型中定义的两个方法(因此所有的函数都可以访问它)允许去手动设置函数调用的this值,他们用接受 的第一个参数作为this值,this 在调用的作用域中使用.这两个 ...
- 报错Database returned an invalid value in QuerySet.datetimes(). Are time zone definitions for your database and pytz installed?解决
在django中的setting.py中: LANGUAGE_CODE = 'en-us' TIME_ZONE = 'Asia/Shanghai' #'UTC' USE_I18N = True USE ...
- C 语言预处理
在嵌入式系统编程中,不管是内核的驱动程序还是应用程序的编写,都涉及到大量的预处理与条件编译,这样做的好处主要体现在代码的移植性强以及代码的修改方便等特性,因此引入了预处理与条件编译的概念.在C语言的程 ...
- 关于Socket的经验小结
前言 IM通信在互联网发展到现在已经是码农的世界里人尽皆知的技术,特别在当下移动互联网迅猛发展的时代这种技术的开发也更加火热,其中老牌的代表作就有QQ和MSN,和最近新崛起的微信,默默,易信,来往等眼 ...
- android实现系统电话通话过程中自动感应黑屏
package com.developmenttools.customui.activity; import java.util.HashSet;import java.util.Set; impor ...
- Linux mysql常用操作命令
原文:http://blog.csdn.net/lifuxiangcaohui/article/details/46375931 1.linux下启动MySQL的命令:mysqladmin start ...
- J2EE 第二阶段项目之JUnit4进行单元测试(五)
今天学习了JUnit4进行单元测试.这样就可以不写页面直接进行过功能模块测试.也不是很深入的了解. JUnit4和自己写的代码可以分割开来. 首先呢准备两个jar包: 可以对mapper进行测试,当然 ...
- Winform_播放声音文件
1.调用非托管的dll using System.Runtime.InteropServices; //DllImport命名空间的引用 class test //提示音 { [DllImport ...
- Intellij IDEA-can't use subversion command line client : svn
http://www.myexception.cn/cvs-svn/1935962.html