您的位置:首页 > 数据库 > MySQL

MySQL安装、常用命令、使用遇到问题及解决

2017-05-14 15:50 851 查看
安装Mysql 5.7.17:

下载地址:(https://dev.mysql.com/downloads/file/?id=467269

配置:(http://www.cnblogs.com/–net/p/6796445.html)

windows10配置:(http://jingyan.baidu.com/article/af9f5a2d16fa4d43150a4552.html

http://www.it610.com/article/4909090.htm

以管理员身份进入cmd(https://jingyan.baidu.com/article/f25ef25474208a482c1b822d.html)

cmd指令进入特定的文件中(https://jingyan.baidu.com/article/425e69e6918df1be15fc1695.html

启动mysql:执行mysqld.exe -nt –skip-grant-tables 注意:窗口无反应

重新打开dos窗口,执行mysql -u root

常用命令:

第一招、mysql服务的启动和停止

net stop mysql

net start mysql

第二招、登陆mysql

语法如下: mysql -u用户名 -p用户密码

键入命令mysql -uroot -p, 回车后提示你输入密码,输入12345,然后回车即可进入到mysql中了,mysql的提示符是:

mysql>

注意,如果是连接到另外的机器上,则需要加入一个参数-h机器IP

第三招、增加新用户

格式:grant 权限 on 数据库.* to 用户名@登录主机 identified by “密码”

如,增加一个用户user1密码为password1,让其可以在本机上登录, 并对所有数据库有查询、插入、修改、删除的权限。首先用以root用户连入mysql,然后键入以下命令:

grant select,insert,update,delete on . to user1@localhost Identified by “password1”;

如果希望该用户能够在任何机器上登陆mysql,则将localhost改为”%”。

如果你不想user1有密码,可以再打一个命令将密码去掉。

grant select,insert,update,delete on mydb.* to user1@localhost identified by “”;

第四招: 操作数据库

登录到mysql中,然后在mysql的提示符下运行下列命令,每个命令以分号结束。

1)、 显示数据库列表。

show databases;

缺省有两个数据库:mysql和test。 mysql库存放着mysql的系统和用户权限信息,我们改密码和新增用户,实际上就是对这个库进行操作。

2)、 显示库中的数据表:

use mysql;

show tables;

3)、 显示数据表的结构:

describe 表名;

4)、 建库与删库:

create database 库名;

drop database 库名;

5)、 建表:

use 库名;

create table 表名(字段列表);

drop table 表名;

6)、 清空表中记录:

delete from 表名;

7)、 显示表中的记录:

select * from 表名;

第五招、导出和导入数据

mysql 怎样导入、导出一个表/数据库的结构和数据

https://zhidao.baidu.com/question/1799771961603166827.html

MySQL如何导入.sql文件:

http://database.51cto.com/art/201005/200739.htm

http://www.cnblogs.com/yuwensong/p/3955834.html

导入数据库

常用source 命令

进入mysql数据库控制台,如

mysql -u root -p

mysql>use 数据库

然后使用source命令,后面参数为脚本文件(如这里用到的.sql)

mysql>source d:/dbname.sql

导出整个数据库

  mysqldump -u用户名 -p密码 数据库名 > 导出的文件名

  C:\Users\jack> mysqldump -uroot -pmysql sva_rec > e:\sva_rec.sql

  2.导出一个表,包括表结构和数据

  mysqldump -u用户名 -p 密码 数据库名 表名> 导出的文件名

  C:\Users\jack> mysqldump -uroot -pmysql sva_rec date_rec_drv> e:\date_rec_drv.sql

  3.导出一个数据库结构

  C:\Users\jack> mysqldump -uroot -pmysql -d sva_rec > e:\sva_rec.sql

4.导出一个表,只有表结构


  mysqldump -u用户名 -p 密码 -d数据库名 表名> 导出的文件名

  C:\Users\jack> mysqldump -uroot -pmysql -d sva_rec date_rec_drv> e:\date_rec_drv.sql

1)使用SHOW语句找出在服务器上当前存在什么数据库:

mysql> SHOW DATABASES;

2)创建一个数据库MYSQLDATA

mysql> CREATE DATABASE MYSQLDATA;

3):选择你所创建的数据库

mysql> USE MYSQLDATA; (按回车键出现Database changed 时说明操作成功!)

4):查看现在的数据库中存在什么表

mysql> SHOW TABLES;

5):创建一个数据库表

mysql> CREATE TABLE MYTABLE (name VARCHAR(20), sex CHAR(1));

6):显示表的结构:

mysql> DESCRIBE MYTABLE;

7):往表中加入记录

mysql> insert into MYTABLE values (“hyq”,”M”);

8):用文本方式将数据装入数据库表中(例如D:/mysql.txt)

mysql> LOAD DATA LOCAL INFILE “D:/mysql.txt” INTO TABLE MYTABLE;

9):导入.sql文件命令(例如D:/mysql.sql)

mysql>use database;

mysql>source d:/mysql.sql;

10):删除表

mysql>drop TABLE MYTABLE;

11):清空表

mysql>delete from MYTABLE;

12):更新表中数据

mysql>update MYTABLE set sex=”f” where name=’hyq’;

posted on 2006-01-10 16:21 happytian 阅读(6) 评论(0) 编辑 收藏 收藏至365Key

13):备份数据库

mysqldump -u root 库名>xxx.data

14):例2:连接到远程主机上的MYSQL

假设远程主机的IP为:110.110.110.110,用户名为root,密码为abcd123。则键入以下命令:

mysql -h110.110.110.110 -uroot -pabcd123

(注:u与root可以不用加空格,其它也一样)

3)、退出MYSQL命令: exit (回车)

遇到问题及解决:

1.1045-Access denied for user ‘root’@’localhost’ (using password: YES)

表示生成了root的临时密码

解决方案:

1)停止mysql服务(Ctrl+Alt+Del)

2)点击mysql.exe



3)管理员身份运行



请参考:http://www.cnblogs.com/gogly/p/3293328.html

2.Field ‘id’ doesn’t have a default value



又是主键自增问题,今天我按前天的方法



遇到了以下问题:



解决方案:

按(http://blog.csdn.net/god8816/article/details/8593419)对my-default文件进行修改

这会出现



以5开始。

解释:之前有插入过数据,虽然失败了但ID还是加进去了。

3.[Err] 1055 - Expression #1 of ORDER BY clause is not in GROUP BY clause and contains nonaggregated column ‘information_schema.PROFILING.SEQ’ which is not functionally dependent on columns in GROUP BY clause; this is incompatible with sql_mode=only_full_group_by

问题分析:

ONLY_FULL_GROUP_BY 对于GROUP BY聚合操作,若select中的列没有在group by中出现,那么这句SQL是不合法的。

解决方案:

1)查看sql_mode

select @@global.sql_mode

查询出来的值为:

ONLY_FULL_GROUP_BY,STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION

2)去掉ONLY_FULL_GROUP_BY,重新设置值。

set sql_mode=(select replace(@@sql_mode,’ONLY_FULL_GROUP_BY’,”));

4.[Err] 1248 - Every derived table must have its own alias

select distinct deptno

from

(select deptno

from emp

union all

select deptno

from dept)

解决方案:

一般是在多表查询或者子查询的时候会出现这个错误,因为在嵌套查询中,子查询的结果是作为一个派生表给上一级进行查询,所以子查询的结果必须有一个别名。

所以要改成这样:

select distinct deptno

from

(select deptno

from emp

union all

select deptno

from dept) x
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: