当前位置: 首页 > 编程日记 > 正文

jspstudy启动mysql失败_MySql启动数据库设置初始密码

这一小节介绍在Mac OS、Linux、Windows上启动关闭重启MySQL服务,以及部分图形化界面对服务的操控。安装完成后,可以使用 service 命令启动 mysql 服务,在Mac上service命令不存在。

命令行启动关闭重启MySQL服务

在命令行终端启动 MySQL 非常方便,下面大概介绍几个平台通过命令启动服务的方法。

查看服务是否启动

# 还可以这么查看,MySQL服务器是否启动
ps -ef | grep mysqld# 查看服务运行的状态
service mysqld status

Mac OS X 下命令操作

在 Mac 系统下操作起来就非常方便了。安装完之后就可以在终端上运行全局命令 mysql.server 命令,假设这个命令没有,你在系统的MySQL安装目录中找到 mysql.server 命令,运行它是一样的效果。

mysqld start
mysql.server start    # 1. 启动
mysql.server stop     # 2. 停止
mysql.server restart  # 3. 重启

当你安装过 MySQL 并没有找到 mysql.server 命令,那这时你需要找到安装目录中的 mysql.server 命令工具了,如 sudo /usr/local/mysql/support-files/mysql.server start

Linux 下命令操作

Linux生态系统中对服务的操作有点区别。其实在 Mac 系统下也可以直接 mysqld start 来启动服务。

  1. 启动:service mysqld start
  2. 停止:service mysqld stop
  3. 重启:service mysqld restart
  4. 查看状态:service mysqld status
  5. 查看状态:systemctl status mysqld.service

systemctl是一个systemd工具,主要负责控制systemd系统和服务管理器,在 Linux 系统中可以通过它来启动 mysql 服务。

启动过程中有可能会报错,错误处理,通过 systemctl status mysqld.servicejournalctl -xe 命令查看服务启动失败的原因。

systemctl status mysqld.service● mysqld.service - SYSV: MySQL database server.Loaded: loaded (/etc/rc.d/init.d/mysqld)Active: failed (Result: exit-code) since 三 2016-11-02 22:14:36 EDT; 11s agoDocs: man:systemd-sysv-generator(8)Process: 14940 ExecStart=/etc/rc.d/init.d/mysqld start (code=exited, status=1/FAILURE)11月 02 22:14:34 localhost.localdomain systemd[1]: Starting SYSV: MySQL database server....11月 02 22:14:35 localhost.localdomain mysqld[14940]: MySQL Daemon failed to start.11月 02 22:14:35 localhost.localdomain mysqld[14940]: Starting mysqld:  [FAILED]11月 02 22:14:36 localhost.localdomain systemd[1]: mysqld.service: control process exited, code=exited status=111月 02 22:14:36 localhost.localdomain systemd[1]: Failed to start SYSV: MySQL database server..11月 02 22:14:36 localhost.localdomain systemd[1]: Unit mysqld.service entered failed state.11月 02 22:14:36 localhost.localdomain systemd[1]: mysqld.service failed.# 查看配置文件 my.cnf 的位置
whereis my.cnf
# 输出: my: /etc/my.cnf# 编辑
vi /etc/my.cnf

里面有个 log_error=/var/log/mysqld.log 的配置,通过命令 tail -25 /var/log/mysqld.log 查看 MySQL 错误日志

2016-01-20T10:00:19.935771Z 0 [ERROR] /usr/sbin/mysqld: Can't create/write to file '/var/run/mysqld/mysqld.pid' (Errcode: 2 - No such file or directory)
2016-01-20T10:00:19.935795Z 0 [ERROR] Can't start server: can't create PID file: No such file or directory
160120 18:00:20 mysqld_safe mysqld from pid file /var/run/mysqld/mysqld.pid ended

上面日志错误说,MySQL服务在启动的时候,不能创建pid文件。前去看一下 mysqld 文件是否存在,不存在创建 mysqld 目录。

# 创建 mysqld 目录
mkdir -p /var/run/mysqld/# 启动MySQL
/etc/init.d/mysqld start# 输出下面内容
# Starting mysqld (via systemctl):  Job for mysqld.service failed because the control process exited with error code. See "systemctl status mysqld.service" and "journalctl -xe" for details.
# [FAILED]

创建 mysqld 目录还是启动报错,按照下面命令尝试解决问题

ls -ld /var/run/mysqld/# mysqld 文件夹如果不存在通过命令创建mkdir /var/run/mysqld# 会输出下面内容
# drwxr-xr-x. 2 mysql mysql 60 11月  2 22:15 /var/run/mysqld/
chown mysql.mysql /var/run/mysqld/
/etc/init.d/mysqld start

通过查看目录 /var/run/mysqld/ 的属主和属组还是root,mysql并不能在其中创建文件,后修改该目录的属主和属组,启动OK。

创建脚本cat start-mysql.sh,这个问题每次都会出现,因为Centos7上MySQL5.7.12系统不兼容启动失败, 每次开机后手动执行,或放在定时调度里。

#!/bin/bash  mkdir -p /var/run/mysqld/  
chown mysql.mysql /var/run/mysqld/  /etc/init.d/mysqld start  

Windows 下命令操作

Windows平台操作起来有点不顺手,个人感觉 Windows 的DOS太难用了,下面简单的介绍一下操作过程。先找到 MySQL 的安装位置,如我的电脑的安装位置是:C:Program FilesMySQLMySQL Server 5.7,我就执行这样的操作:开始->运行->输入“cmd”开启命令行,然后输入“C:”。通过命令进入到 MySQL Server 5.7 的 bin 目录下,输入 MySQL 命令行的服务启用命令,如下:

# net start [mysql服务名]# 启动 mysql 服务
net start mysql # 停止 mysql 服务
net stop mysql 

有很多情况可能导致无法启动 MySQL,常见解决方法如下:

  1. 在 CMD 命令中断运行这条命令 C:Program FilesMySQLMySQL Server 5.7binmysqladmin-u root -p shutdown 来关闭MYSQL,如果有密码根据提示输入密码即可。
  2. 在 CMD 命令中断,执行net start mysql启动 MySQL,参考上面方法来启动 MySQL 服务。

图像界面启动关闭重启MySQL服务

Mac OS X 下操作

在 Mac 系统下如果你官方下载安装就可以在系统偏好设置 > MySQL 里面点击 Stop MySQL Server 按钮进行启动关闭。

f3b37e803672baa0c46cd23944eac649.png

通过 XAMMPP 安装的 MySQL ,这个软件安装之后会自动安装 Apache + MySQL + PHP 对于初学者特别方便,新版本是默认安装Apache + MariaDB + PHP + Perl

Windows 下操作

Windows 系统下启动关闭重启MySQL服务。

查看初始密码

默认情况下MySQL是有个初始密码,知道了初始密码才能改密码。

[root@localhost home]# grep 'temporary password' /var/log/mysqld.log2017-07-17T13:40:11.842835Z 1 [Note] A temporary password is generated for root@localhost: b&iu(sf;>ws

设置初始化密码

启动后我们需要简单配置一下 mysql ,默认安装以后 mysql 的 root 用户是没有密码的,对于生产环境来说,这肯定是不行的,另外还有一些安全相关的设置,可以使用下面这行命令去配置一下,它是一个向导,问你一些问题,你要给出答案,比如是否要设置 root 用户的密码, 密码是什么等等。

mysql_secure_installationEnter current password for root (enter for none):
# 解释:输入当前 root 用户密码,默认为空,直接回车。Set root password? [Y/n]  y
# 解释:要设置 root 密码吗?输入 y 表示愿意。Remove anonymous users? [Y/n]  y
# 解释:要移除掉匿名用户吗?输入 y 表示愿意。Disallow root login remotely? [Y/n]  y
# 解释:不想让 root 远程登陆吗?输入 y 表示愿意。Remove test database and access to it? [Y/n]  y
# 解释:要去掉 test 数据库吗?输入 y 表示愿意。Reload privilege tables now? [Y/n]  y
# 解释:想要重新加载权限吗?输入 y 表示愿意。

你安装成功后,可以查看一下 MySQL 版本,mysql --version,如果版本并非你所使用的版本,你可以参考这里进行升级数据库操作Centos6下升级MySQL数据库。

启动报错处理

下面是我尝试在Mac上启动MySQL报错

启动失败

sudo /usr/local/mysql/support-files/mysql.server start
Password:
Starting MySQL
. ERROR! The server quit without updating PID file (/usr/local/mysql/data/localhost.pid

通过日志查看报错信息

# 编辑配置文件
sudo vim /etc/my.cnf# 在配置文件最后添加一行错误日志输入的配置
log_error = /usr/local/mysql/data/error.log

上面添加完成之后,重新启动再查看日志

sudo /usr/local/mysql/support-files/mysql.server start
tail -100 /usr/local/mysql/data/error.log

日志显示错误一

2017-01-19T03:48:24.695505Z 0 [ERROR] InnoDB: Unable to lock ./ibdata1 error: 35
2017-01-19T03:48:24.695540Z 0 [Note] InnoDB: Check that you do not already have another mysqld process using the same InnoDB data or log files.

日志显示 mysqld 进程使用相同的InnoDB data 文件或日志文件,通过 ps -ef | grep mysql | grep -v grep 查看是否有该进程,发现果然有,这时候你需要杀掉该进程,我在我本地是杀不掉的,于是我尝试使用 mysqld 启动MySQL,启动成功。

sudo /usr/local/mysql/bin/mysqld restart

日志显示错误二

[ERROR] InnoDB: The innodb_system data file 'ibdata1' must be writable

上面的错误信息说的是 ibdata1 文件不可写。ibdata1 是InnoDB的共有表空间,默认情况下会把表空间存放在一个文件ibdata1中,(此原因会造成这个文件越来越大)。所以大概能猜测是 mysql 用户的权限不够了。所以再给 ibdata1目录分配一下权限即可。

这个时候需要查看一下mysql 安装目录权限。使用 chown 改变了整个 mysql 目录的权限,这是一个非常不好的习惯。

cd /usr/local/mysql
sudo chown -R _mysql:_mysql *

这里需要注意的是,Mac OS系统下,mysql 的用户组和用户名都是 _mysql,Linux 是 mysql。然后再重启 MySQL 你就完事大吉了。

上面调试定位错误的方法非常有用。我通过这个方法多次解决各种问题。

相关文章:

区块链技术产生数字货币时代

链客,专为开发者而生,有问必答! 此文章来自区块链技术社区,未经允许拒绝转载。 比特币是一种革命性的数字货币,更是一种颠覆性的创新技术。比特币最大的贡献是创造了信用,解决了困扰互联网进一步发展的拜…

软件构造 第二章 第一节 软件生命周期和版本控制

软件构造第二章 第一节 软件生命周期和版本控制 基本内容 Software Development Lifecycle (SDLC) Traditional software process models (waterfall, incremental, V- model, prototyping, spiral) Agile development and eXtreme Programming (XP) Collaborative software de…

三极管在ad中的原理图库_555时基电路内部结构及其工作原理

555时基电路特点时基电路是一种常用的模数混合型集成电路。由它组成的振荡器、单稳态触发器、双稳态触发器和各类电子开关等都被十分广泛地应用在各类电路之中。它具有定时精度高、响应速度快、温漂小、输出驱动电流大、结构简单等优点。555时基电路型号命名555时基芯片由其内部…

Mac下导出chrome插件

Mac下导出chrome插件 chrome最强大的功能之一就是插件,有时候需要给小伙伴们共享一些插件,所以需要将自己chrome中的插件打包,在mac下打包插件还是挺费劲的,在此记录。 打开chrome的扩展程序,找到要导出的插件&#xf…

区块链技术的本质是分布式数据库

链客,专为开发者而生,有问必答! 此文章来自区块链技术社区,未经允许拒绝转载。 区块链技术是基于比特币应用提出的一个概念,他是一个融合了多种技术的一个集成式创新。目前区块链的应用早已不仅仅局限在比特币上。人…

sql数据库系统表和mysql系统表

sql数据库系统表,常用的(sysobjects,sysindexes,sysindexkeys,SYSCOLUMNS,SYSTYPES 及更多解释说明): https://docs.microsoft.com/zh-tw/previous-versions/sql/sql-server-2012/ms177596(v%3dsql.110) 系统存储过程sp_spaceused: 执行sp_spaceused存储过程的时候可以不用带参…

交换机启用光口命令_如何在思科交换机上查询光模块状态?

本篇文章易天光通信(ETU-LINK)将为大家介绍下怎么在思科交换机上查询光模块的信息。 第一步,我们需要连接网络,然后登陆思科交换机的管理平台,用户名和密码默认是cisco/cisco。 第二步,在交换机的特权EXEC模式,通过输入以下使用显示光纤端口光纤收发器命令:show光纤端口…

深入浅出谈以太坊智能合约

链客,专为开发者而生,有问必答! 此文章来自区块链技术社区,未经允许拒绝转载。 1什么是合约? 合约是代码(它的功能)和数据(它的状态)的集合,存在于以太坊区块链的特定…

人机猜拳(这是最近的一个总结)

人机猜拳是我自己原创的一段代码,我刚学完do-while,知识有限,但自己感觉写的这段代码是我的一个小巅峰,发出来让大家看看,新手能学到东西的话是极好的,然后更多的是想让一些老鸟给点建议。这个写代码很枯燥…

利用python3 调用zabbix接口完成批量加聚合图形(screens)

在上一篇博客中,我们完成的利用python3 调用zabbix接口批量增加主机,增加主机的item,增加主机的图形! 接下来我们完成批量增加主机的screen 首先我们要增加screen需要哪些参数呢?官方的解释如下: {"jsonrpc"…

轮播切换_javascript基础(一)——轮播图

javascript基础(一)——轮播图1、轮播图的实现原理轮播图的js实现原理其实十分的简单,首先将图片放入一个ul标签中,ul标签的大小要足够将所有图片放入其中。然后再将ul标签放进div中,这个div的大小正好可以显示一整张图片,将其他图…

以太坊挖矿源码:clique算法

链客,专为开发者而生,有问必答! 此文章来自区块链技术社区,未经允许拒绝转载。 clique 以太坊的官方共识算法是ethash算法,这在前文已经有了详细的分析: 它是基于POW的共识机制的,矿工需要通…

JS中简单原型的使用

转载于:https://www.cnblogs.com/hwgok/p/6163335.html

vuex+vue-router拦截

干就完了 项目中经常遇到这样一个场景,用户信息或者进行增删改的一些模块,需要根据用户是否登录,进行路由拦截,直接上代码 在store文件夹下的store.js中存放一个默认登录状态 /** store.js* */ import Vue from vue import Vuex …

通关制单机器人_2020关务节|“数字供应链与智能通关”论坛——如何打造云上跨境贸易生态圈...

点击标题下「蓝色微信名」可快速关注 随着跨境贸易的飞速发展,其涉及的有商流、信息流、资金流与物流。其中,物流特别是跨境物流,又是其中较为重要的一个环节。如何解决跨境贸易的物流物流困难?让我们来听听,欧坚集团副…

区块链技术世界

链客,专为开发者而生,有问必答! 此文章来自区块链技术社区,未经允许拒绝转载。 2017年发展最火热的技术,我觉得一个人工智能AI,另一个当之无愧的是一个叫区块链东西。最典型的例子是,人类顶…

Python学习心得第一周-03练习2

#5. 求1-23-45 ... 99的所有数的和 res0 count1 while count <100:if count%2 0:res-countelse:rescountcount1 print(res) #6. 用户登陆&#xff08;三次机会重试&#xff09; count0 while count<3:nameinput(name:)passwordinput(password:)if nameztc and passwords…

与MySQL传统复制相比,GTID有哪些独特的复制姿势?

与MySQL传统复制相比&#xff0c;GTID有哪些独特的复制姿势? http://mp.weixin.qq.com/s/IF1Pld-wGW0q2NiBjMXwfg 陈华军&#xff0c;苏宁云商IT总部资深技术经理&#xff0c;从事数据库服务相关的开发和维护工作&#xff0c;之前曾长期从事富士通关系数据库的开发&#xff0c…

方法的运用_企业如何运用论坛做营销,千享科技分享技巧方法

随着互联网的普及&#xff0c;对企业的发展带来了很大的影响&#xff0c;传统的营销已经满足不了企业的发展&#xff0c;需要运用互联网来营销&#xff0c;企业也意识到了互联网营销的重要性&#xff0c;而做互联网营销可以分成几种形式进行&#xff0c;像百度知识营销、论坛营…

区块链开发入门

链客&#xff0c;专为开发者而生&#xff0c;有问必答&#xff01; 此文章来自区块链技术社区&#xff0c;未经允许拒绝转载。 区块链这么火&#xff0c;可是你很快就会发现&#xff0c;想要入门区块链开发&#xff0c;尤其是想要从零开始学习区块链编程&#xff0c;根本都找…

linux怎么创建牡蛎_文件amp;目录小技巧 | Linux后门系列

0x01 Linux 目录技巧我们都知道 Windows 下文件和文件夹命名是有很多规则和限制的&#xff0c;但是可以通过一些程序来绕过限制&#xff0c;今天我们来看看 Linux 有哪些有趣的规则 参考 https://www.pathname.com/fhs/pub/fhs-2.3.pdf当然了&#xff0c;我这种人怎么可能按照官…

php简单算法之冒泡排序

<?php $arr [2,4,1,5,3,11,6,999,88,666,66,44,22,33,776];function getNewArr($arr){$count count($arr);//该层循环控制 需要冒泡的轮数for($i1;$i<$count;$i){//该层循环用来控制每轮 冒出一个数 需要比较的次数for($k0;$k<$count-$i;$k){if($arr[$k]>$arr[…

iOS单个应用程序的最大可用内存是多少?

iOS单个应用程序的最大可用内存是多少&#xff1f; StackOverflow上有人做了一些简单的测试&#xff0c;有限设备下迄今为止测到的结果&#xff1a; iPad1: 127MB/256MB/49% (大致crash临界值 / 总内存 / 占比)iPad2: 275MB/512MB/53%iPad3: 645MB/1024MB/62%iPad4: 585MB/102…

sql 存储过程和函数

最近在学习数据库&#xff0c;上课过程中总是在许多知识点有或多或少的问题&#xff0c;对于这些问题的产生&#xff0c;大概是由于我听课习惯所造成的吧&#xff0c;好啦&#xff0c;废话不多说&#xff0c;开始今天到主题吧。 首先介绍SQL的存储过程&#xff0c;先来给它定义…

怎樣制作线段动画_PPT动画还能这么做?我擦!动画源文件免费送你

擦除动画&#xff0c;可以说是基础得不能再基础PPT动画之一了&#xff0c;我们几乎可以在任何带有PPT动画效果的演示中找到它的踪影。简单的直线擦除效果可能大部分都会&#xff0c;那么把直线换成曲线呢&#xff1f;小小的变动都会让你措手不及。所以&#xff0c;你确定自己真…

Linux最大打开文件描述符数

1. 系统最大打开文件描述符数&#xff1a;/proc/sys/fs/file-max a. 查看 $ cat /proc/sys/fs/file-max 186405 2. 设置 a. 临时性 # echo 1000000 > /proc/sys/fs/file-max 2. 永久性&#xff1a;在/etc/sysctl.conf中设置 fs.file-max 1000000 2. 进程最大…

XMT.com超200万被区块链终端交易

链客&#xff0c;专为开发者而生&#xff0c;有问必答&#xff01; 此文章来自区块链技术社区&#xff0c;未经允许拒绝转载。 狭义来讲&#xff0c;区块链是一种按照时间顺序将数据区块以顺序相连的方式组合成的一种链式数据结构&#xff0c; 并以密码学方式保证的不可篡改和…

初学LINQ语句

//有两个数组&#xff0c;客户和地址&#xff0c;他们之间通过公司名关联&#xff1a;var customers new[] { new {CustomerID1,FirstName"Kim",LastName"Abercrombie",CompanyName"Alpine Sky House"},new {CustomerID2,FirstName"Jeff&q…

android 开启一个定时线程_ANDROID开发中定时器的3种方法

在android中&#xff0c;经常用到的定时器主要有以下几种实现&#xff1a;一、采用Handler与线程的sleep(long )方法二、采用Handler的postDelayed(Runnable, long) 方法三、采用Handler与timer及TimerTask结合的方法。下面逐一介绍&#xff1a;一、采用Handle与线程的sleep(lo…

083 HBase的完全分布式的搭建与部署,以及多master

一&#xff1a;前提准备 1.设置时间同步 2.清空logs&#xff0c;datas 3.格式化集群 bin/hdfs namenode -format 4.重启集群 sbin/start-dfs.sh sbin/start-yarn.sh 5.删除zookeeper下的data&#xff0c;并新建zkData 6.在zkData下新建myid 7.分发&#xff0c;后&#xff0c;修…