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

mysql命令 积累笔记

阅读更多
这部分会不断总结,添加内容。

1. 修改表明:

ALTER  TABLE table_name RENAME TO new_table_name

例如 ALTER  TABLE admin_user RENAME TO a_user

1.1.显示表结构

describe table;

1.2显示参数

show variables;

1.3 查看当前用户的连接数(默认显示100条,如果现实所有,用show full processlist;)

show processlist;

1.4 .创建用户

grant all on *.* to 'root'@'%' identified by '123';

如果用户已经存在,可以起到对该用户访问授权的作用。


2. 修改数据库

  2.1修改字段类型和长度
alter table 表名 modify column 字段名 类型;
例如:数据库中user表 student字段是varchar(30)
alter table user modify column student varchar(50) ;


2.2 增加一个新列549830479
alter table adcontent add ppvod int(0) NOT NULL default 0;

2.3 删除列549830479
   alter table t2 drop column c;
例如 alter table adcontent drop column ppvod;

2.3 重命名列549830479
   alter table t1 change a b integer;
例如   alter table adcontent change  pps ppgo int;

2.4 重命名表549830479
   alter table gyes rename othertable;


2.5 改变列的类型549830479
   alter table t1 change b b bigint not null;
alter table infos change list list tinyint not null default '0';


2.6 删数据库
   DROP DATABASE databasename;

2.7修改密码
set password=password('new password');

2.7.1 修改指定用户的密码
update mysql.user set password=password('new password') where User='name' and Host='host';
2.7.2 删除用户
delete from user where User='name' and Host='%';

修改root密码
mysqladmin -u root -p password mypasswd




方法1
使用phpmyadmin,这是最简单的了,修改mysql库的user表,
不过别忘了使用PASSWORD函数。

方法2
使用mysqladmin,这是前面声明的一个特例。
mysqladmin -u root -p password mypasswd
输入这个命令后,需要输入root的原密码,然后root的密码将改为mypasswd。
把命令里的root改为你的用户名,你就可以改你自己的密码了。
当然如果你的mysqladmin连接不上mysql server,或者你没有办法执行mysqladmin,
那么这种方法就是无效的。 而且mysqladmin无法把密码清空。
下面的方法都在mysql提示符下使用,且必须有mysql的root权限:

方法3
mysql> INSERT INTO mysql.user (Host,User,Password)
VALUES(\%,jeffrey,PASSWORD( iscuit));
mysql> FLUSH PRIVILEGES

确切地说这是在增加一个用户,用户名为jeffrey,密码为biscuit。在《mysql中文参考手册》里有这个例子,所以我也就写出来了。 注意要使用PASSWORD函数,然后还要使用FLUSH PRIVILEGES。

方法4
和方法三一样,只是使用了REPLACE语句
mysql> REPLACE INTO mysql.user (Host,User,Password)
VALUES(\%,jeffrey,PASSWORD( iscuit));
mysql> FLUSH PRIVILEGES

方法5
使用SET PASSWORD语句,
mysql> SET PASSWORD FOR jeffrey@"%" = PASSWORD( iscuit);
你也必须使用PASSWORD()函数,
但是不需要使用FLUSH PRIVILEGES。

方法6
使用GRANT ... IDENTIFIED BY语句
mysql> GRANT USAGE ON *.* TO jeffrey@"%" IDENTIFIED BY  iscuit
这里PASSWORD()函数是不必要的,也不需要使用FLUSH PRIVILEGES。
注意: PASSWORD() [不是]以在Unix口令加密的同样方法施行口令加密。


2.8 修改存储引擎

    要把一个表从一个类型转到另一个类型,可使用ALTER TABLE语句:
    ALTER TABLE t ENGINE = MYISAM;
    ALTER TABLE t TYPE = BDB;


3. 数据导入导出
首先:若配置的环境变量可以直接执行下面命令。若没环境变量,就需要到bin目录下执行
    3.1 导出整个数据库
   mysqldump -u 用户名 -p 数据库名 > 导出的文件名
   mysqldump -u wcnc -p smgp_apps_wcnc > wcnc.sql
  3.2 导出一个表
   mysqldump -u 用户名 -p 数据库名 表名> 导出的文件名
   mysqldump -u wcnc -p smgp_apps_wcnc users> wcnc_users.sql
  3.3导出一个数据库结构
   mysqldump -u wcnc -p -d --add-drop-table smgp_apps_wcnc >d:wcnc_db.sql
   -d 没有数据 --add-drop-table 在每个create语句之前增加一个drop table
  
备忘: mysqldump在linux下可直接使用 在windows下有时需要进入mysql/bin中使用因为有时用的是类似appserv的套装软件 这样的话命令就不能直接使用 因为这些命令没在环境变量的目录里 而且用mysqldump导出的备份必须先建立数据库才能导入

    3.4 查看建表sql

    show create table tablename;
    show create table user;

    3.5 导入数据库
   常用source 命令
   进入mysql数据库控制台,
   如mysql -u root -p
   mysql>use 数据库
   然后使用source命令,后面参数为脚本文件(如这里用到的.sql)
   mysql>source d:wcnc_db.sql

存疑: phpmyadmin导入有大小限制 不知道source导入时有没限制 而且导出时是不可以限制文件大小 并且分数个文件导出



3.5.2 DROP TABLE 语句

    删除表比创建表要容易得多,因为不需要指定有关其内容的任何东西;只需指定其名称即可,如:

    DROP TABLE tb1_name

    MySQL对DROP TABLE 语句在某些有用的方面做了扩充。首先,可在同一语句中指定几个表对它们进行删除,如:

    DROP TABLE tb1_name1,tb1_name2,......

    其次,如果不能肯定一个表是否存在,但希望如果它存在就删除它。那么可在此语句中增加IF EXISTS。这样,如果DROP TABLE 语句中给出的表不存在,MySQL不会发出错误信息。如:

    DROP TABLE IF EXISTS tb1_name

    IF EXISTS 在mysql所用的脚本中很有用,因为缺省情况下, mysql将在出错时退出。例如,有一个安装脚本能够创建表,这些表将在其他脚本中继续使用。在此情形下,希望保证此创建表的脚本在开始运行时无后顾之忧。如果在该脚本开始处使用普通的DROP TABLE,那么它在第一次运行时将会失败,因为这些表从未创建过。如果使用IF EXISTS,就不会产生问题了。当表已经存在时,将它们删除;如果不存在,脚本继续运行。

    3.5.3 创建和删除索引

    索引是加速表内容访问的主要手段,特别对涉及多个表的连接的查询更是如此。这是第4章“查询优化”中的一个重要内容,第4章讨论了为什么需要索引,索引如何工作以及怎样利用它们来优化查询。本节中,我们将介绍索引的特点,以及创建和删除索引的语法。



//主键549830479

   alter table tabelname add new_field_id int(5) unsigned default 0 not null auto_increment ,add primary key (new_field_id);


加索引549830479

   mysql> alter table tablename change depno depno int(5) not null;
mysql> alter table tablename add index 索引名 (字段名1[,字段名2 …]);
mysql> alter table tablename add index emp_name (name);

加主关键字的索引549830479

mysql> alter table tablename add primary key(id);

加唯一限制条件的索引549830479

  mysql> alter table tablename add unique emp_name2(cardnumber);

删除某个索引549830479

   mysql>alter table tablename drop index emp_name;

修改表:549830479

增加字段:549830479

   mysql> ALTER TABLE table_name ADD field_name field_type;

修改原字段名称及类型:549830479

   mysql> ALTER TABLE table_name CHANGE old_field_name new_field_name field_type;

删除字段:549830479

   mysql> ALTER TABLE table_name DROP field_name;

原有一unique索引AK_PAS_Name(PAC_Name)在表tb_webparamcounter中,
执行以下sql修改索引
alter table tb_webparamcounter drop index AK_PAS_Name;
alter table tb_webparamcounter add UNIQUE AK_PAS_Name(PC_ID,PAC_Name);

若发现索引的逻辑不对,还需要再加一个字段进去,执行
alter table tb_webparamcounter drop index AK_PAS_Name;
alter table tb_webparamcounter add UNIQUE AK_PAS_Name(PC_ID,PAC_Name,PAC_Value);
注意:这时的PC_ID,PAC_Name,PAC_Value三个字段不是FOREIGN KEY
否则必需先drop FOREIGN KEY,再重做上一步才行


5 修改Mysql的字符集
在linux下修改3个my.cnf的1个/etc/mysql/my.cnf文件

  找到客户端配置[client] 在下面添加

  default-character-set=utf8 默认字符集为utf8

  在找到[mysqld] 添加

  default-character-set=utf8 默认字符集为utf8

  init_connect='SET NAMES utf8' (设定连接mysql数据库时使用utf8编码,以让mysql数据库为utf8运行)

  修改好后,重新启动mysql 即可,查询一下show variables like 'character%';

  +--------------------------+----------------------------+

  | Variable_name | Value |

  +--------------------------+----------------------------+

  | character_set_client | utf8 |

  | character_set_connection | utf8 |

  | character_set_database | utf8 |

  | character_set_filesystem | binary |

  | character_set_results | utf8 |

  | character_set_server | utf8 |

  | character_set_system | utf8 |

  | character_sets_dir | /usr/share/mysql/charsets/ |

  +--------------------------+----------------------------+

  此方法用于标准mysql版本同样有效,对于/etc/my.cnf文件,需要从mysql/support-files的文件夹cp my-large.cnf一份到/etc/my.cnf

6.5 远程访问数据库

第一步: 激活网络设置(这步没有经过验证。)
你需要编辑mysql配置文件my.cnf.

通常状况,my.cnf放置于在以下目录:
/etc/mysql/my.cnf (Debian linux/Ubuntu)
/etc/my.cnf (Red Hat Linux/Fedora Linux)
/var/db/mysql/my.cnf (FreeBSD)

# vi /etc/my.cnf(Ubuntu需要加sudo)
然后用vi编辑my.cnf,修改内容从以下行:

需要修改:
1. 确保skip-networking被删除或者屏蔽,否则不支持TCP/IP 访问
2. 屏蔽掉bind-address = 127.0.0.1
3. 保存并关闭配置文件
4. 重启mysql服务器:sudo /etc/init.d/mysql restart

第二步, 给远程ip授访问权限
1. 以root身份登陆mysql # mysql -u root -p
2. 授权给新数据库


mysql> grant all on simulatesystem.*(库名.表名  *标识全部) to root@192.168.0.70(授权的用户@授权人)  identified by "123456"(密码);

>mysql -uroot -p
Enter password: ******
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 2
Server version: 5.1.22-rc-community-log MySQL Community Server (GPL)

Type 'help;' or '\h' for help. Type '\c' to clear the buffer.

mysql> grant all privileges on *.* to 'root'@'%' identified by 'youpasswd';
Query OK, 0 rows affected (0.05 sec)

mysql> flush privileges;   //在分配完权限后一定要flush下,不然不生效
Query OK, 0 rows affected (0.06 sec)

mysql> exit
Bye

第三步 测试
mysql -h192.168.*.* -uroot -p

注解;
-u root: root为mysql的用户名
-h IP or 域名: 192.168.*.* is MySQL server IP address or hostname (FQDN)
-p : 密码提示
你也可以使用telnet去连接远程的3306端口 $ telnet 65.55.55.2 3306

注:
这篇文章解决了我在suse环境中的mysql远程访问问题。但是实际操作中,my.cnf似乎并不是特别重要。在我的操作中,my.cnf创建和修改没有执行(忽略第一步)。最重要的步骤应该是第四步
GRANT ALL ON b2c.* TO root@'5.179.201.86' IDENTIFIED BY '';
其中b2c为所要访问的远程数据库名,5.179.201.86为mysql客户端主机的ip地址,也就是你的机器ip地址。
有个小细节需要注意。如果你的服务器装了防火墙的话,需要打开3306的访问,否则也会连接不上。



6.6.1 查看mysql系统配置(查看字符集部分)
show variables like 'character_set_%';


1
0
分享到:
评论

相关推荐

    大神写的MySQL DBA学习笔记

    通过阅读这份“大神写的MySQL DBA学习笔记”,不仅可以系统地学习MySQL的基础知识,还能获取到作者在实践中积累的宝贵经验,这对于成为一名合格的MySQL DBA至关重要。无论你是初学者还是有一定经验的数据库管理员,...

    MySQL基础使用笔记

    查询语句是DML的一部分,是MySQL中最常用的命令。基本查询语句使用SELECT关键字,可以从一个或多个表中提取数据。简单的查询可以只选择所有列(SELECT *),或者指定特定列(SELECT 列名1, 列名2...)。为了提高效率...

    MySQL基础PDF版

    MySQL是世界上最流行的关系型数据库管理系统之一,用于存储和管理数据。本篇主要介绍MySQL的基础...随着经验的积累,还可以深入学习存储过程、触发器、视图、索引优化、性能调优等进阶主题,进一步提升数据库管理能力。

    IT,web,sH,日常知识积累笔记

    【标题】IT、Web、sH日常知识积累笔记 这些笔记涵盖了广泛的IT、Web和sH(可能是Shell脚本)领域的基础知识,旨在帮助读者构建扎实的技术基础。在IT行业中,不断学习和积累新知识是至关重要的,特别是对于Web开发和...

    丁奇Mysql45.zip

    这个压缩文件的核心内容很可能是丁奇在深入研究MySQL过程中积累的笔记、教程或案例,旨在帮助学习者掌握MySQL的关键技术和实践应用。 MySQL是一个广泛使用的开源关系型数据库管理系统(RDBMS),由瑞典的MySQL AB...

    mysql 数据库基础笔记

    本笔记将深入探讨MySQL的基础知识,包括安装、连接、数据库操作以及数据表管理。 首先,安装MySQL后,要访问数据库,你需要找到安装目录下的`bin`文件夹,通常路径为`…/bin/mysql.exe`。在命令行界面,你可以使用`...

    PHP初级入门笔记

    3. 触发器与存储过程:通过定义触发器自动化执行特定操作,存储过程封装一组SQL命令,提高执行效率。 五、Web应用实战 1. 使用PHP发送电子邮件:通过PHPMailer库或`mail()`函数实现邮件发送功能,处理表单提交数据...

    MySQL入门很简单教程

    通过这个“MySQL入门很简单-学习笔记.pdf”文档,你可以详细学习这些概念,并逐步掌握MySQL的基本操作。随着实践的积累,你将能够更深入地理解数据库管理和SQL编程,为未来的开发工作打下坚实基础。

    mySQL学习记录.zip

    了解如何使用mysqldump工具进行备份,以及如何使用mysql命令恢复数据。 9. **性能优化**: 这包括索引的合理使用、查询优化、内存配置调整等,以提升数据库性能。 10. **安全和权限**: 用户管理、权限设置和加密...

    mysql学习札记.zip

    这份"mysql学习札记.zip"文件显然包含了作者在学习MySQL过程中积累的知识和经验,可能是笔记、示例代码或者教程。虽然没有具体的标签来细化主题,但我们可以根据常见的MySQL学习路径来探讨一些关键知识点。 首先,...

    MySql数据库学习记录.zip

    - 使用mysql命令导入备份,实现数据恢复。 10. **安全**: - 用户权限管理:GRANT和REVOKE命令控制用户对数据库的访问权限。 - 加密连接:使用SSL确保数据传输安全。 - 定期更新MySQL版本,修复安全漏洞。 ...

    记录mysql学习.zip

    在“记录mysql学习.zip”这个压缩包中,可能包含了作者Kwan1117在学习MySQL过程中积累的笔记、示例代码、教程或者问题解决方案。下面将深入探讨MySQL的一些关键知识点: 1. **安装与配置**:MySQL的安装通常涉及...

    linux学习笔记

    总结:Linux学习是一个不断积累和实践的过程,通过阅读这些笔记,读者可以逐步建立起对Linux系统的全面认识,并在实际操作中提升技能。记住,理论知识与实践经验相结合,才是通往Linux高手之路的关键。

    database文件

    database文件 mysql数据库相关的命令,笔记以及操作,是本人在学习数据库过程中的积累。

    Linux定时执行脚本学习笔记

    “linux下定时执行脚本.docx”可能介绍了如何结合`cron`和数据库的备份命令(如MySQL的`mysqldump`或PostgreSQL的`pg_dump`)实现自动备份。备份脚本可能涉及压缩、加密和上传到远程服务器,以确保数据安全。 至于...

    韩顺平——玩转oracle教程笔记(转).doc

    通过以上知识点的总结,我们不仅了解了Oracle数据库的安装、基本使用命令,还深入掌握了Oracle用户管理的具体操作,这对于数据库管理员来说,是极其宝贵的知识积累。这些知识点覆盖了从基础操作到高级权限管理的各个...

    Oracle资料集合

    最后,"oracle资料.txt"可能包含了一些额外的Oracle学习资料,如笔记、命令参考或者问题解答,这些通常是个人学习过程中积累的宝贵经验分享。 总的来说,这个Oracle资料集合提供了全面的学习路径,从基础的Oracle...

    python_tutorial_notes:我关于python的笔记

    这是一份个人学习Python时积累的笔记,包含了作者对Python基础知识的理解、常见问题的解答以及一些实用技巧。这些笔记通常会按照Python的学习路径,从基础语法到高级特性进行组织,帮助读者逐步掌握这门强大而易学的...

    java,学习计划.pdf

    - **3-5天**:复习Oracle和MySQL数据库的基本操作,熟练掌握常用的SQL命令。 - **10天**:复习JSP和Servlet,学习使用Eclipse进行Web开发,对Tomcat服务器进行配置管理。 - **半个月**:通过Lomboz学习JDBC、...

Global site tag (gtag.js) - Google Analytics