mysql官网下载地址:https://dev.mysql.com/downloads/mysql/
新版安装包解压后,没有网上教程里面提到的data文件夹和my-default.ini,如下图所示
2.在下面目录下创建my.ini,内容如下:
character_set_server=utf8 #这里网上很多是default-character-set=utf8 ,容易出错
port = 3306
basedir=D:from20181022softmysql-5.7.24mysql-5.7.24-winx64
#datadir=D:MySQLMySQL Server 5.7.23data 在这里不需要自己去创建一个空的data文件夹
max_connections=200
character-set-server=utf8
default-storage-engine=INNODB
可以直接复制粘贴,主要修改下basedir后的路径,注意路径中为而非
3.进入dos的命令行,用administrator进入
a.进入MySQL的bin目录,输入mysqld –install可以安装MySQL
D:Javamysql-5.7.35-winx64bin>mysqld -install
Service successfully installed.
或之前已安装过Mysql卸载不干净
D:Javamysql-5.7.35-winx64bin>mysqld -install
The service already exists!
查看是否存在
D:Javamysql-5.7.35-winx64bin>sc query mysql
SERVICE_NAME: mysql
TYPE : 10 WIN32_OWN_PROCESS
STATE : 1 STOPPED
WIN32_EXIT_CODE : 0 (0x0)
SERVICE_EXIT_CODE : 0 (0x0)
CHECKPOINT : 0x0
WAIT_HINT : 0x0
确认之前已安装过
进行再删除
D:Javamysql-5.7.35-winx64bin>sc delete mysql
[SC] DeleteService 成功
即可安装Mysql
D:Javamysql-5.7.35-winx64bin>mysqld -install
Service successfully installed.
输入mysqld --initialize --user=root --console(,初始化,创建root账户.可直接复制)
运行后
…
…到最后一行
[Note] A temporary password is generated for root@localhost:
OR5tM511qp_&(这个就是初始密码)
如果没有密码,则
启动MySQL服务
D:Javamysql-5.7.35-winx64bin>net start mysql
MySQL 服务正在启动 .
MySQL 服务已经启动成功。
进入MySQL的bin目录mysql,输入
D:Javamysql-5.7.35-winx64bin>mysql
报
ERROR 1045 (28000): Access denied for user ‘ODBC’@‘localhost’ (using password: NO)
账号或密码有误
使用新打开的管理员身份下运行的cmd窗口输入以下代码:
mysqld --skip-grant-tables
有些同学的mysql安装目录可能不在C盘 需要切换盘符为你装mysql的那个盘 例如我的是D盘
我的文件夹目录为:D:Javamysql-5.7.35-winx64
输入 D: 即可切换盘符 “注意:所有的代码都要用英文输入法,不然会出错,切记切记!”
打完回车之后,这个窗口就不会动了,保持这个窗口在后台打开,再在管理员权限下重新开一个新的cmd窗口。
在新窗口下,用上面切换盘符的方法,再把路径调整到你安装mysql的文件夹目录下
下一步,系统会再次跳出 mysql>, 输入use mysql;
此时系统文字回复数据库已经切换至mysql,此时在新一行跳出来的 mysql>,输入 show tables;
按照传统改密码方式发现没有 password这个字段。
mysql> update user set password=password(‘root’) where user=‘root’;
ERROR 1054 (42S22): Unknown column ‘password’ in ‘field list’
查询user表结构
mysql> desc user;
±-----------------------±----------------------------------±-----±----±----------------------±------+
| Field | Type | Null | Key | Default | Extra |
±-----------------------±----------------------------------±-----±----±----------------------±------+
| Host | char(60) | NO | PRI | | |
| User | char(32) | NO | PRI | | |
| Select_priv | enum(‘N’,‘Y’) | NO | | N | |
| Insert_priv | enum(‘N’,‘Y’) | NO | | N | |
| Update_priv | enum(‘N’,‘Y’) | NO | | N | |
| Delete_priv | enum(‘N’,‘Y’) | NO | | N | |
| Create_priv | enum(‘N’,‘Y’) | NO | | N | |
| Drop_priv | enum(‘N’,‘Y’) | NO | | N | |
| Reload_priv | enum(‘N’,‘Y’) | NO | | N | |
| Shutdown_priv | enum(‘N’,‘Y’) | NO | | N | |
| Process_priv | enum(‘N’,‘Y’) | NO | | N | |
| File_priv | enum(‘N’,‘Y’) | NO | | N | |
| Grant_priv | enum(‘N’,‘Y’) | NO | | N | |
| References_priv | enum(‘N’,‘Y’) | NO | | N | |
| Index_priv | enum(‘N’,‘Y’) | NO | | N | |
| Alter_priv | enum(‘N’,‘Y’) | NO | | N | |
| Show_db_priv | enum(‘N’,‘Y’) | NO | | N | |
| Super_priv | enum(‘N’,‘Y’) | NO | | N | |
| Create_tmp_table_priv | enum(‘N’,‘Y’) | NO | | N | |
| Lock_tables_priv | enum(‘N’,‘Y’) | NO | | N | |
| Execute_priv | enum(‘N’,‘Y’) | NO | | N | |
| Repl_slave_priv | enum(‘N’,‘Y’) | NO | | N | |
| Repl_client_priv | enum(‘N’,‘Y’) | NO | | N | |
| Create_view_priv | enum(‘N’,‘Y’) | NO | | N | |
| Show_view_priv | enum(‘N’,‘Y’) | NO | | N | |
| Create_routine_priv | enum(‘N’,‘Y’) | NO | | N | |
| Alter_routine_priv | enum(‘N’,‘Y’) | NO | | N | |
| Create_user_priv | enum(‘N’,‘Y’) | NO | | N | |
| Event_priv | enum(‘N’,‘Y’) | NO | | N | |
| Trigger_priv | enum(‘N’,‘Y’) | NO | | N | |
| Create_tablespace_priv | enum(‘N’,‘Y’) | NO | | N | |
| ssl_type | enum(’’,‘ANY’,‘X509’,‘SPECIFIED’) | NO | | | |
| ssl_cipher | blob | NO | | NULL | |
| x509_issuer | blob | NO | | NULL | |
| x509_subject | blob | NO | | NULL | |
| max_questions | int(11) unsigned | NO | | 0 | |
| max_updates | int(11) unsigned | NO | | 0 | |
| max_connections | int(11) unsigned | NO | | 0 | |
| max_user_connections | int(11) unsigned | NO | | 0 | |
| plugin | char(64) | NO | | mysql_native_password | |
| authentication_string | text | YES | | NULL | |
| password_expired | enum(‘N’,‘Y’) | NO | | N | |
| password_last_changed | timestamp | YES | | NULL | |
| password_lifetime | smallint(5) unsigned | YES | | NULL | |
| account_locked | enum(‘N’,‘Y’) | NO | | N | |
±-----------------------±----------------------------------±-----±----±----------------------±------+
此时在新一行跳出来的 mysql>,输入 select user,host,authentication_string from user;
网上查了一下据说5.7 版本password 字段改成authentication_string password函数还是原来的password函数
mysql> update user set authentication_string=‘root’ where user=‘root’;
Query OK, 1 row affected, 1 warning (0.00 sec)
Rows matched: 1 Changed: 1 Warnings: 1
想要查一下,密码是否成功修改,可以在新一行跳出来的 mysql>,输入 select user,host,authentication_string from user;
重启mysql
D:Javamysql-5.7.35-winx64bin>net stop mysql
MySQL 服务正在停止…
MySQL 服务已成功停止。
D:Javamysql-5.7.35-winx64bin>net start mysql
MySQL 服务正在启动 .
MySQL 服务已经启动成功。
查看show databases;时
此时系统会提示你修改密码,并且必须使用ALTER USER的方式修改,另外,无法执行其他任何语句:
mysql> alter user ‘root’@‘localhost’ identified by ‘root’;
Query OK, 0 rows affected (0.00 sec)



