因本人需要需要安装MySQL,现将安装过程记录如下,在自己记录的同时,希望对有疑问的人有所帮助。
一、下载软件
1. 进入mysql官网,登陆自己的Oracle账号(没有账号的自己注册一个),下载Mysql-5.7.15,下载地址:http://dev.mysql.com/downloads/mysql/
2.将下载好的文件解压到指定目录,笔者解压在D:\mysql-5.7.15-winx64
二、 安装过程
1.首先配置环境变量path,将D:\mysql-5.7.15-winx64\bin配置到自己的path中,具体再次不详述
2.在解压路径下复制my-default.ini,修改名称为my.ini如下图所示
3.打开文件my.ini,添加内容如下:
[plain] view plain copy
1. [mysqld]
2. basedir=D:\\mysql-5.7.15-winx64
3. datadir=D:\\mysql-5.7.15-winx64\\data
4. port=3306
[plain] view plain copy
1. sql_mode="STRICT_TRANS_TABLES,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION"
2. <span style="font-family:Arial;BACKGROUND-COLOR: #ffffff"></span>
其中basedir:是上述mysql的解压路径
datadir:后续初始化等数据都会保存在该目录下(注意:不要在该文件目录下新建data文件夹,我的新建data文件夹就会出错,按我的操作步骤,后续操作会自动创建的。)
port:表示连接数据库的端口
sql_mode:表示sql的模式
三、初始化数据库 配置相关信息
1.以管理员身份运行windows命令行(特别提醒:WIN7及WIN7以上版本系统这里一定要用管理员身份,不然后续操作会出错)
2. 进入mysql的解压缩目录D:\mysql-5.7.15-winx64\bin(提醒:此处需要进入bin目录,否则后续操作会出现错误)
3.输入:mysqld--initialize --user=mysql --console,执行后进行初始化,此时会生成root的初始密码
记下此时生成的初始化密码。
4.注册Mysql服务。运行命令:mysqld--install MySQL
如果出现:"Service successfully installed.“ 提示,证明成功安装mysql服务.
5.此时,可以起动mysql服务,netstart mysql
用户可能会出现如下错误:
发生系统错误 2. 系统找不到指定文件。
错误原因:如上所述,在运行安装service命令:mysqld--install MySQL时,我们没有进入bin目录,进行安装。
解决方案:进入bin目录,首先移除service,运行命令mysqld --remove
Service successfully removed。
重新安装mysql服务,运行命令mysqld--install ,再启动mysql服务
D:\mysql-5.7.15-winx64>net start mysql
MySQL 服务正在启动
MySQL 服务已启动成功
此时mysql服务已成功起动。
四、登陆数据库,修改密码
在my.ini文件中在[mysqld]后一行加入skip-grant-tables
此时,关闭mysql服务,再重新启动。
(命令行中输入net stop mysql关闭MySQL服务,输入netstart mysql 开启MySQL服务)
登陆:输入 mysql -u root -p 后回车键,密码为空,不输入,直接回车,即可登录MySQL
选择mysql数据库:
查询mysql数据库的user表,select * from user
此时,我们发现密码字段的名称为authentication_string。有的可能会是password,根据你查询出来的结果为准。
对表user执行update操作:updateuser set authentication_string = password("123456") whereuser="root"
操作成功。退出mysql
删除my.ini 文件中的skip-grant-tables ,重新启动mysql服务。登录MySQL
后续有可能出现的问题:
安装完mysql,登陆以后,不管运行任何命令,总是提示这个:You must reset yourpassword using ALTER USER statement before executing this statement.
出现此问题时,只需要在命令行mysql下继续运行以下两条命令即可:
ALTERUSER ‘root‘@‘localhost‘ PASSWORD EXPIRE NEVER;
flush privileges;
注意:以上是2条命令,需要分开执行。
完成以上两条命令,MySQL就安装完整了。
解决ERROR 1820 (HY000): You mustSET PASSWORD before executing this statement
今天在MySql5.6操作时报错:You must SETPASSWORD before executing this statement解决方法,需要的朋友可以参考下
ERROR 1820 (HY000): You must SET PASSWORD before executingthis statement
非常诡异啊,明明用密码登陆进去了,怎么还提示需要密码。
参考官方的一个文档,见http://dev.MySQL.com/doc/refman/5.6/en/alter-user.html。如下操作后就ok了:
mysql> create database yan1;
ERROR 1820 (HY000): You must SET PASSWORD before executing this statement
mysql> SET PASSWORD = PASSWORD('123456');
Query OK, 0 rows affected (0.03 sec)
mysql> create database yan1;
Query OK, 1 row affected (0.00 sec)
也就是用mysql> SET PASSWORD = PASSWORD('123456');这句话重新设置一次密码!大爷的,真费劲啊。
这位仁兄也遇到了相同的问题。
最近新装好的mysql在进入mysql工具时,总是有错误提示:
# mysql -u root -p
Enter password:
ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password:NO)
或者
# mysql -u root -p password 'newpassword'
Enter password:
mysqladmin: connect to server at 'localhost' failed
error: 'Access denied for user 'root'@'localhost' (using password: YES)'
现在终于找到解决方法了。本来准备重装的,现在不必了。
方法操作很简单,如下:
# /etc/init.d/mysql stop
# mysqld_safe --user=mysql --skip-grant-tables --skip-networking &
# mysql -u root mysql
mysql> UPDATE user SET Password=PASSWORD('newpassword') where USER='root'and host='root' or host='localhost';//把空的用户密码都修改成非空的密码就行了。
mysql> FLUSH PRIVILEGES;
mysql> quit # /etc/init.d/mysqld restart
# mysql -uroot -p
Enter password: <输入新设的密码newpassword>
MySql5.6操作时报错:You must SETPASSWORD before executing this statement解决
mysql> SET PASSWORD = PASSWORD('123456');
Query OK, 0 rows affected (0.03 sec)
mysql> create database roger;
Query OK, 1 row affected (0.00 sec)
也就是用mysql> SET PASSWORD = PASSWORD('123456');这句话重新设置一次密码!