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

来源:互联网 发布:招淘宝代理 编辑:程序博客网 时间:2024/06/05 17:11

安装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

0 0
原创粉丝点击