成都网站建设设计

将想法与焦点和您一起共享

我的mysql怎么打不开 mysql 打不开

mysql打不开了怎么办

工具/原料

在连江等地区,都构建了全面的区域性战略布局,加强发展的系统性、市场前瞻性、产品创新能力,以专注、极致的服务理念,为客户提供成都网站设计、网站建设、外贸网站建设 网站设计制作定制网站开发,公司网站建设,企业网站建设,高端网站设计,营销型网站,外贸营销网站建设,连江网站建设费用合理。

已经安装了mysql数据库的windows

操作系统

笔者安装的mysql版本为5.6,即mysql

5.6

方法/步骤

首先,需要关闭mysql

server服务。在“运行”窗口,输入“services.msc”,进入“服务”窗口。

在服务窗口,可以找到“mysql56”,选定,将其“停止”即可。

这样,mysql

server服务就停止了。

需要说明的是,这里的“mysql56”受版本限制。举例来说,如果你的mysql的版本是5.1,那么此时就是就是“mysql51”。

当然,也可以在命令行窗口使用“net

stop

mysql56”来停止服务。

接着,需要使用到mysql的安装位置。如果忘记了,可以在“开始”按钮(windows键)找到安装“mysql”文件夹,打开并选择“mysql

server

5.6”文件夹,会看到两个mysql

commond

打开的快捷方式。选择其中的一个查看其属性,就可以找到mysql的安装位置。

可以看到我们的mysql位置在“d:\program

files\mysql”

其实,我们之所以想知道mysql的安装位置,是为了获取其下的.ini文件的位置。该文件记录了mysql的配置信息。如果我们想跳过登录权限,就必须获取该文件的位置。

需要注意的是,不同版本的.ini文件的名称不同,在mysql

5.1时,它是my.ini,而在mysql

5.6则是my-default.ini。

接着,打开命令行窗口,输入如下的命令:

c:\users\wangmysqld

--defaults-file="d:\program

files\mysql\mysql

server

5.6\my-default.ini"

--console

--skip-grant-tables

需要说明的是,此时该窗口不可再写入。这也是检验命令是否正确执行的一个标准。

另外打开一个命令行窗口,输入命令:mysql

-u

root

-p,回车即可进入mysql命令行界面。

7

接下来,只需要修改系统数据库,将密码进行更新即可。

需要使用到的命令是:

mysql-show

database;

mysql-use

mysql

mysql-update

user

set

password=password('12345')

where

user='root';

这样,就将新密码设为了12345。

我的mysql总是启动不了

一、无法访问系统资源

MySQL 不能访问启动需要的资源是造成而 MySQL 无法启动的一个常见原因,如:文件,端口等。由于 linux 中用于启动 mysqld 进程的 mysql 用户通常是不能登陆的,可以使用类似下面的命令检查文件的访问权限。

sudo -u mysql touch /var/lib/mysql/b

找出问题后,修改对应文件或目录的权限或属主后通常可以解决问题。但有时 mysql 用户有访问文件和目录的权限,但仍然会被拒绝访问,例如下面这个例子:

mysql system sudo -u mysql touch /home/mysql/data/a

mysql create table t1 (

id int primary key,n varchar(10

) data directory

ERROR 1030 (HY000): Got error 168 from storage engine

测试说明 mysql 用户有这个目录的访问权限,但创建文件还是失败,这种情况让很多人困惑,这个时候通常是 mysqld 进程的访问被 linux 的 selinux 或 apparmor 给阻止了,大家可以看到创建的表不是在 mysql 的默认目录下面,因此 selinux 或 apparmor 的 policy 里面没有包含这个目录的访问权限,此时只要对应的修改 policy 就行了,当然把 selinux 或 apparmor 停了也行。

有时虽然对系统资源有访问的权限,但系统资源已经被占用:

mysqld --no-defaults --console --user mysql

2020-11-03T03:36:07.519419Z 0 [System] [MY-010116] [Server] /usr/sbin/mysqld (mysqld 8.0.19) starting as process 21171

2020-11-03T03:36:07.740347Z 1 [ERROR] [MY-012574] [InnoDB] Unable to lock ./ibdata1 error: 11

这个故障产生的原因是另外一个 mysqld 进程已经启动并占用了对应的文件。

二、参数设置错误

参数设置错误造成 MySQL 无法启动的原因也非常常见,此时先要检查 MySQL 启动时会调用的参数,下面的命令可以查询 MySQL 启动时调用参数文件的顺序:

$ mysqld --verbose --help | grep "Default options " -A 1

Default options are read from the following files in the given order:

/etc/my.cnf /etc/mysql/my.cnf ~/.my.cnf

知道了 MySQL 参数文件的调用顺序,我们就可以检查对应的参数文件,找出其中的错误,如果觉得参数文件的可读性不强,可以使用下面的命令显示 mysqld 程序将要调用的参数:

$ mysqld --print-defaults

/usr/sbin/mysqld would have been started with the following arguments:

......

注意这个命令显示完参数后就退出,不会真正运行 mysqld。这个命令和 my_print_defaults mysqld 完全是等价的,只不过后者的显示方式是一行一个参数。

然后开始对可疑的参数进行调试,我个人喜欢加的参数和顺序如下:

1. 在 mysqld 后加上第一个参数 --no-defaults ,这个参数的作用是通知 mysqld 在启动的时候不要读任何参数文件;

2. 第二个参数是 --console,这个参数会把错误信息输出到屏幕上,这个参数带来的一个弊端是所有的信息都输出到屏幕上,让屏幕显得比较乱,但对于我们调试却是很方便的;

3. 第三个参数是 --log-error-verbosity=3,这个参数会显示详细的日志;

4. 然后再在后面加上有把握的参数,可以一次只加一个参数,然后启动 mysqld,采用排除法逐步找出错误的参数。

mysql无法启动问题

现象:mysql安装后通过 service mysqld start 无法启动。

报错信息如下:

主要含义是说:

mysql启动过程中找不到 /var/lib/mysql/aria_log_control 这个文件;

或者这个文件存在但是打不开。

所以我怀疑的方向有两个:

1、 /var/lib/mysql/aria_log_control 这个文件不存在;

切换到/var/lib/mysql目录下,查看文件是否存在:

可以看到文件是存在的,只是这个文件的属主不对,这里是root,应该是mysql用户和用户组才对。

2、所以应该是第二个怀疑的方向,文件存在,但是没有权限操作:

把该文件的属主改为mysql:

chown -R mysql.mysql /var/lib/mysql

并修改文件的操作权限:

chmod 755 /var/lib/mysql

再执行 service mysqld start 就可以正常启动了。


本文标题:我的mysql怎么打不开 mysql 打不开
文章地址:http://chengdu.cdxwcx.cn/article/dosggso.html