该文章是经过很多网上大神上文章取得的结果,十分感谢
今天领导让布置mysql服务在一台没有连内网都没有的电脑上。。。
所以只能以zip模式在windows10 64位环境下安装mysql。
安装步骤如下:
1.配置环境变量
我的电脑->属性->高级->环境变量->path
如:C:\Program Files\MySQL\mysql-5.7.20-winx64\bin
2.复制C:\Program Files\MySQL\mysql-5.7.20-winx64\my-default.ini文件令命名为my.ini文件 注意是追加,不要覆盖
在其中修改或添加配置:
[mysql]
# 设置mysql客户端默认字符集
default-character-set=utf8
[mysqld]
#设置3306端口
port = 3306
# 设置mysql的安装目录
basedir=C:\Program Files\mysql-5.7.20-winx64
# 设置mysql数据库的数据的存放目录
datadir=C:\Program Files\mysql-5.7.13-winx64\data
# 允许最大连接数
max_connections=200
# 服务端使用的字符集默认为8比特编码的latin1字符集
character-set-server=utf8
# 创建新表时将使用的默认存储引擎
default-storage-engine=INNODB
3.以管理员身份运行cmd(win10右键左下角开始按钮选择以管理员身份运行cmd即可)
以管理员身份运行cmd(一定要用管理员身份运行,不然权限不够),
输入:cd C:\Program Files\MySQL\mysql-5.7.20-winx64\bin 进入mysql的bin文件夹(不管有没有配置过环境变量,也要进入bin文件夹,否则之后启动服务仍然会报错误2)
输入mysqld -install(如果不用管理员身份运行,将会因为权限不够而出现错误:Install/Remove of the Service Denied!)
安装成功
4.运行mysqld --initialize(标题问题所在,若没有init则不存在data目录,自然无法启动成功)
5.安装成功后就要启动服务了,继续在cmd中输入:net start mysql,服务启动成功!
服务启动成功之后,就可以登录了,输入mysql -u root -p(第一次登录没有密码,直接按回车过),登录成功!
追加内容:
在安装mysql5.7版本时,经常会遇到mysql -u root -p直接回车登陆不上的情况,原因在于5.7版本在安装时自动给了一个随机密码,坑爹的是在init步骤的时候不像linux系统会给出命令行提示,需要手动在mysql目录下搜索*.err,以文本形式打开才能看到如下内容:
016-02-25T15:09:43.033062Z 1 [Note] A temporary password is generated for root@localhost: >mso<k70mrWe
红色字母即为第一次的登陆密码,记得加双引号。
修改密码:
1、找到配置文件my.ini ,然后将其打开,可以选择用记事本打开
2、打开后,搜索mysqld关键字找到后,在mysqld下面添加skip-grant-tables,保存退出。
3、重启MySQL服务
4、进入mysql数据库:
mysql> use mysql;Database changed
5、给root用户设置新密码:mysql> update user set password=password("123456") where user="root";
提示:Query OK, 1 rows affected (0.04 sec)Rows matched: 1 Changed: 1 Warnings: 0
6、.刷新数据库mysql> flush privileges;
提示:Query OK, 0 rows affected (0.01 sec)
7、退出mysql:mysql> exit
提示:Bye
8、改好之后,再修改一下my.ini这个文件,把我们刚才加入的"skip-grant-tables"这行删除,保存退出再重启mysql服务就可以了
9、输入mysql -u root -p登录密码
10、解锁 unlock tables;
解锁
第一种
show processlist;
找到锁进程,kill id ;
第二种
mysql>UNLOCK TABLES;
锁表
锁定数据表,避免在备份过程中,表被更新
mysql>LOCK TABLES tbl_name READ;
为表增加一个写锁定:
mysql>LOCK TABLES tbl_name WRITE;
方法1: 用SET PASSWORD命令
首先登录MySQL。
格式:mysql> set password for 用户名@localhost = password('新密码');
例子:mysql> set password for root@localhost = password('123');
方法2:用mysqladmin
格式:mysqladmin -u用户名 -p旧密码 password 新密码
例子:mysqladmin -uroot -p123456 password 123
方法3:用UPDATE直接编辑user表
首先登录MySQL。
mysql> use mysql;
mysql> update user set password=password('123') where user='root' and host='localhost';
mysql> flush privileges;
方法4:在忘记root密码的时候,可以这样
以windows为例:
1. 关闭正在运行的MySQL服务。
2. 打开DOS窗口,转到mysql\bin目录。
3. 输入mysqld --skip-grant-tables 回车。--skip-grant-tables 的意思是启动MySQL服务的时候跳过权限表认证。
4. 再开一个DOS窗口(因为刚才那个DOS窗口已经不能动了),转到mysql\bin目录。
5. 输入mysql回车,如果成功,将出现MySQL提示符 >。
6. 连接权限数据库: use mysql; 。
6. 改密码:update user set password=password("123") where user="root";(别忘了最后加分号) 。
7. 刷新权限(必须步骤):flush privileges; 。
8. 退出 quit。
9. 注销系统,再进入,使用用户名root和刚才设置的新密码123登录。