1.MySQL的下载与安装准备
- 本文下载的是:MySQL Community Server 5.7.18版本
最新版下载地址为:点此进入
示例图:
解压到某一位置[本问的位置是:D:\Develope\mysql-5.7.18-winx64]
在mysql-5.7.18-winx64文件夹下(根目录)新建一个文本文档重命名为
my.ini
。复制一下内容并保存。# For advice on how to change settings please see # http://dev.mysql.com/doc/refman/5.7/en/server-configuration-defaults.html # *** DO NOT EDIT THIS FILE. It's a template which will be copied to the # *** default location during install, and will be replaced if you # *** upgrade to a newer version of MySQL. [mysqld] #这一行是跳过密码登录,为了修改密码而设 #skip-grant-tables # Remove leading # and set to the amount of RAM for the most important data # cache in MySQL. Start at 70% of total RAM for dedicated server, else 10%. # innodb_buffer_pool_size = 128M # Remove leading # to turn on a very important data integrity option: logging # changes to the binary log between backups. # log_bin # These are commonly set, remove the # and set as required. #这个是安装目录,需要根据自己的路径修改 basedir = D:\\Develope\\mysql-5.7.18-winx64 #这是数据库存放目录,也需要根据自己安装路径修改 datadir = D:\\Develope\\mysql-5.7.18-winx64\\data #这个是默认端口,如果被占用,可改为其他 port = 3306 #这是最大链接失败重试次数 max_connections=20 #这里设置服务端默认的字符编码 character_set_server=utf8 # server_id = ..... # Remove leading # to set options mainly useful for reporting servers. # The server defaults are faster for transactions and fast SELECTs. # Adjust sizes as needed, experiment to find the optimal values. # join_buffer_size = 128M # sort_buffer_size = 2M # read_rnd_buffer_size = 2M explicit_defaults_for_timestamp=true sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES
在mysql-5.7.18-winx64文件夹下(根目录)新建一个文件夹命名为
data
。
2. MySQL的安装过程与问题分析
- 配置
MYSQL_HOME
,并将MySQL的bin目录添加到Path中,不会的自行补脑。 管理员身份打开 命令提示符(CMD),注册MySQL服务。
mysqld -install
- 提示内容:
The service already exists!
- 提示内容:
当输入
net start mysql
启动MySQL服务时,会报错:MySQL 服务正在启动. MySQL 服务无法启动。 服务没有报告任何错误。 请键入netHELPMSG3534 以获得更多的帮助。
解决办法:
- 删错清空data目录下的所有内容
- 输入
mysqld --initalize
进行初始化data - 在此启动MySQL服务——成功启动!
- 当启动MySQL服务之后 无法进入数据库,因为初始化会自动生成一个随机密码。(我没有尝试无密码生成的初始化方式,有兴趣的可以尝试),然后对这个登录问题进行解决即可。
解决登录问题
问题分析:
问题重现:执行登录命令:
mysql -u root -p
Enter password:
报错:
ERROR 1045 (28000): Access denied for user 'C:\Users\jonny\AppData\Local\Microsoft'@'localhost' (using password: NO)
解决办法:
- 编辑mysql配置文件my.ini(即上面准备的my.ini 文件),在[mysqld]这个条目下加入
skip-grant-tables
【取消这一行前面的#
注释即可】 - 保存后重启MySQL服务
- 停止:
net stop mysql
- 开始:
net start mysql
- 停止:
- 此时在CMD里面输入
mysql -u root -p
就可以不用密码登录了【出现password:
的时候直接回车可以进入,不会出现类似ERROR 1045 (28000)的报错提示。但很多操作都会受限制,因为我们不能grant(没有权限)。按下面的流程走:
- 进入MySQL数据库[ 即无密码登录 ]:
mysql -u root -p
回车。 - 输入
use mysql
提示:Database changed
- 给root用户设置新密码:
update mysql.user SET authentication_string=PASSWORD('这里输入新的密码') where USER='root';
- 提示:
Query OK, 1 rows affected (0.01 sec)
Rows matched: 1 Changed: 1 Warnings: 0
- 这个地方说一下,有人使用:
update user set password=password("新密码") where user="root";
这种方式修改密码会报错:ERROR 1054 (42S22): Unknown column 'password' in 'field list'
,是因为MySQL数据库下已经没有password这个字段了,password字段改成了
authentication_string,所以报错。
- 提示:
- 刷新权限:
FLUSH PRIVILEGES
提示:Query OK, 0 rows affected (0.00 sec)
- 退出MySQL:
quit
- 重启MySQL服务。
- 使用root用户登录MySQL:
mysql -uroot -p
//输入新设密码并回车
Enter password:
- 进入MySQL数据库[ 即无密码登录 ]: