0
点赞
收藏
分享

微信扫一扫

Mysql5.7.44解压版小白部署与脱坑手记(windows平台)

船长_Kevin 04-05 15:00 阅读 17

安装教程

  1. 去官网下载压缩包版的mysql,不是dba直接下载不带调试和分析工具的版本即可,这里我选择:mysql-5.7.44-winx64.zip
    版本。
  2. 解压这个压缩包文件,放置到一个你喜欢本地路径(最好不要包括中文路径),先记下这个完整路径,稍后配置时需要用到。(我本机为:E:\Mysql-5.7.44
  3. 打开系统环境变量设置界面,一般自己研究的话建议配置当前登录用户即可。首先新建一个变量名:%MYSQL_HEME%,值要指向你刚才记录的完整路径,记得在最后面加 ; 号。
  4. 继续新增一个变量,叫 %MYSQL_HEME%/bin;
  5. 在正式配置前,假若你之前曾经安装过msyql,可以先删除原有的msyql服务项,步骤如下:

#我之前安装过GUI的版本,旧服务名为mysql
mysqld --remove mysql

  1. 进入mysql根目录,新建一个名为my.ini的配置文件,写上下面这堆这玩意:

[mysqld]
# 设置3306端口
port=3306
# 设置mysql的安装目录   ----------是你的文件路径-------------
basedir=E:\Mysql-5.7.44
# 设置mysql数据库的数据的存放目录  ---------是你的文件路径data文件夹自行创建
datadir=E:\Mysql-5.7.44\data
# 允许最大连接数
max_connections=100
# 允许连接失败的次数。
max_connect_errors=10
# 服务端使用的字符集默认为utf8mb4
character-set-server=utf8mb4
# 创建新表时将使用的默认存储引擎
default-storage-engine=INNODB
# 默认使用“mysql_native_password”插件认证
#mysql_native_password
default_authentication_plugin=mysql_native_password
innodb_flush_method=normal		---------这行的作用在后面脱坑过程有详细解释,现在先照写就完了。
[mysql]
# 设置mysql客户端默认字符集
default-character-set=utf8mb4
[client]
# 设置mysql客户端连接服务端时默认使用的端口
port=3306
default-character-set=utf8mb4

  1. 使用系统管理员权限打开cmd,cd命令进入mysql根路径,其实无所谓,因为前面已做了用户变量。在任务地方输入的命令,都可以自动定位到mysql根目录和其下的bin子目录了。
  2. 让mysql根据刚才配置的my.ini,初始化数据。

mysqld --initialize-insecure --user=mysql

注意:在这一步中执行过程中和完成后,强烈建议你先进入mysql的data子目录(你配置的数据库数据的存放目录)里面,查看确认日志文件,文件名以【计算机名+.err扩展名】命名,打开记事本把文件拖进去就可以查看。仔细观察每一行日志中是否包含error标注的行,如有则需先处理解决掉这些错误,否则会影响稍后的数据库服务启动。若没有,那么恭喜你可以继续下一步了!

  1. 创建mysql服务

# 在系统中创建一个mysql数据库服务,服务名为:mysql,配置文件使用:E:\Mysql-5.7.44\my.ini
mysqld --install "mysql" --defaults-file="E:\Mysql-5.7.44\my.ini"

  1. 启动服务

#启动服务,成功启动后将以系统后台服务形式运行。
net start mysql		----若启动服务服务报错(我就踩坑了),请看参考脱坑过程或其他大神手札指引。

#停止服务   ----以后维护时才用得上
net stop mysql

  1. 登录数据库

mysql -u root -p

#新配置时root密码为空,可以直接回车

  1. 修改root密码为123456,这里仅仅只是演示,开发测试可以这么干,在生产环境这么搞你准备好收拾包袱跑路吧。

ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '123456';

  1. 由于root账号默认只允许本机登录,不允许远程访问。当你在查询器使用该账户登录mysql时会提示访问受限,一般情况下也不建议直接使用root来远程访问,而会创建新账户、分配可控的权限来使用。但有时开发为了本机调试方便,可以这样做:

#假设现已在服务器上通过cmd成功登录了root用户,可以执行如下sql命令解除root账号的访问范围限制:
update user set host = '%' where user = 'root';		---允许任意ip远程使用root远程访问

---你也可以根据ip地址限制,我当前的ip为192.168.3.1,若希望只允许本网段的ip使用root远程访问,可这样写:
update user set host = '192.168.3.%' where user = 'root';
---未修改前的系统默认限制等价于:
update user set host = 'localhost' where user = 'root';

#记得刷新权限
flush privileges;			如果不刷新,只能在重启数据库服务后才能生效

脱坑过程

      我在尝试启动数据库服务后,提示错误:Mysql数据库启动失败,错误码:1067。错误码其实描述得比较笼统,真正的错误详情其实在日志文件中记录着。查看带error行的日志,其中有一行是这样的:

InnoDB: File .\ib_logfile0: 'aio read' returned OS error 187. Cannot continue operation  For more information, see Help and Support Center at http://www.mysql.com.

       这个错误跟磁盘有关,解决其实很简单,就是为上面my.ini配置文件添加一行:

innodb_flush_method=normal

       这是你再重新执行第7部的初始化动作即可!由于之前执行过初始化,系统会初始化失败(因为data目录已存在),先删除整个data目录后再初始化就可以了!

举报

相关推荐

0 条评论