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使用随笔的更多相关文章

  1. Mysql查询优化随笔记录

    select SQL_CALC_FOUND_ROWS * from (select * from  oses_vehdata201606 union all  select * from  oses_ ...

  2. MySQL的随笔

    数据库引擎 MySQL5.0支持的存储引擎包括MyISAM,InnoDB.MEMORY.MERGE.BDB等等,其中InnoDB和BDB提供事务安全表,其他存储引擎都是非事务安全表. MyISAM M ...

  3. 深入浅出mysql全文随笔

    进入mysql :mysql -uroot -p 1.DDL(Data Definition Languages)语句:数据定义语言 2.DML(Data Manipulation Language) ...

  4. MySQL学习随笔记录

    安装选custmer自定义安装.默认安装全部在c盘.自定义安装的时候有个advance port选项用来选择安装目录. -----------------------MySQL常见的一些操作命令--- ...

  5. MYSQL练习随笔

    解法练习 案例1.子查询练习 字段 说明film_id 电影idtitle 电影名称description 电影描述信息category_id 电影分类idname 电影分类名称last_update ...

  6. MySQL -2- 体系结构--随笔小记

    简介与安装NoSQLRDBMS版本安装方式二进制安装,源码安装体系结构CS模型TCP/IPsocketmysql master thread 实例mysqld 的程序构成连接层 协议.验证.链接线程S ...

  7. MySQL/MariaDB随笔二

    mariaDB的二进制安装:系统版本和MariaDB版本 [root@ ~]# cat /etc/redhat-release CentOS Linux release (Core) [root@ ~ ...

  8. MySQL/MariaDB随笔一

    1.yum 安装后先跑一下系统自带的安全脚本,否则数据库很不安全,任何人都可以登录 [root@xixi ~]# mysql_secure_installation NOTE: RUNNING ALL ...

  9. mysql时间随笔

    SELECT FROM_UNIXTIME(create_time,'%Y-%m-%d %H:%i:%s') FROM `order`; select date_add(FROM_UNIXTIME(cr ...

随机推荐

  1. 四十条测试你是不是合格的PHP程序员

    四十条测试你是否合格的PHP程序员,不官方,也不权威,但很给力.超过三条就不合格了.超过五条就得好好反省下自己的不足了. 1. 不会利用如phpDoc这样的工具来恰当地注释你的代码 2. 对优秀的集成 ...

  2. [转载] nginx的负载均衡

    原文:http://www.srhang.me/blog/2014/08/27/nginx-loabbalance/ Nginx负载均衡 一.特点 1.1 应用情况 Nginx做为一个强大的Web服务 ...

  3. 初识redis——mac下搭建redis环境

    一.redis简介 redis是一个key-value存储系统.和Memcached类似,它支持存储的value类型相对更多,包括string(字符串).list(链表).set(集合)和zset(有 ...

  4. Linux数字权限解释

    linux系统文件夹644.755.777权限设置详解 ,左至右,第一位数字代表文件所有者的权限,第二位数字代表同组用户的权限,第三位数字代表其他用户的权限. 而具体的权限是由数字来表示的,读取的权限 ...

  5. 转:程序员最值得关注的10个C开源项目

    程序员最值得关注的10个C开源项目 1. Webbench Webbench 是一个在 linux 下使用的非常简单的网站压测工具.它使用 fork ()模拟多个客户端同时访问我们设定的 URL,测试 ...

  6. HTML常用的特殊字符格式

    空格: 版权号:©注册商标:®":quot; ':&apos;&:&<:<>:> ©:© «:« ®:® ¯:¯ ¼:¼  (14表示四分之一 ...

  7. 有关使用Maven常见问题总结(Eclipse中使用Maven、Maven项目部署到tomcat等问题)

    http://blog.csdn.net/sunitjy/article/details/42709311 ********************************************** ...

  8. SDL2.0的几何图行绘画

    SDL2.0的几何图形绘画 通过SDL_Window.SDL_Renderer.SDL_Texture三者实现了简单的几何图形绘画. 包括了SDL_RenderDrawPoint.SDL_Render ...

  9. OpenGL的glOrtho平行投影函数详解[转]

    glortho函数可以将当前的可视空间设置为正投影空间.基参数的意义如图,如果绘制的图空间本身就是二维的,可以使gluOrtho2D.他的使用类似于glOrtho 原型是: void glOrtho( ...

  10. 选择排序算法Java与Python实现

    Java 实现 package common; public class SimpleArithmetic { /** * 选择排序 * 输入整形数组:a[n] [4.5.3.7] * 1. 取数组编 ...