mysql的启动

本文介绍了三种启动MySQL的方法:直接使用mysqld命令、通过mysqld_safe命令进行安全启动及作为服务启动。同时展示了如何检查MySQL启动时使用的参数。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1。直接用mysqld手工启动

复制代码
[root@ora11g bin]# ./mysqld --defaults-file=../my.cnf 
140328 10:04:37 [ERROR] Fatal error: Please read "Security" section of the manual to find out how to run mysqld as root!

140328 10:04:37 [ERROR] Aborting

140328 10:04:37 [Note] ./mysqld: Shutdown complete

[root@ora11g bin]# ./mysqld --defaults-file=../my.cnf --user=mysql
140328 10:04:44 InnoDB: The InnoDB memory heap is disabled
140328 10:04:44 InnoDB: Mutexes and rw_locks use InnoDB's own implementation
140328 10:04:44 InnoDB: Compressed tables use zlib 1.2.3
140328 10:04:44 InnoDB: Using Linux native AIO
140328 10:04:44 InnoDB: Initializing buffer pool, size = 128.0M
140328 10:04:44 InnoDB: Completed initialization of buffer pool
140328 10:04:44 InnoDB: highest supported file format is Barracuda.
InnoDB: The log sequence number in ibdata files does not match
InnoDB: the log sequence number in the ib_logfiles!
140328 10:04:44  InnoDB: Database was not shut down normally!
InnoDB: Starting crash recovery.
InnoDB: Reading tablespace information from the .ibd files...
InnoDB: Restoring possible half-written data pages from the doublewrite
InnoDB: buffer...
140328 10:04:44  InnoDB: Waiting for the background threads to start
140328 10:04:45 InnoDB: 5.5.37 started; log sequence number 1595675
140328 10:04:45 [Note] Server hostname (bind-address): '0.0.0.0'; port: 3306
140328 10:04:45 [Note]   - '0.0.0.0' resolves to '0.0.0.0';
140328 10:04:45 [Note] Server socket created on IP: '0.0.0.0'.
140328 10:04:45 [Note] Event Scheduler: Loaded 0 events
140328 10:04:45 [Note] ./mysqld: ready for connections.
Version: '5.5.37'  socket: '/tmp/mysql.sock'  port: 3306  Source distribution
[root@ora11g ~]# ps -ef | grep mysql
mysql     7641  7547  1 10:04 pts/1    00:00:00 ./mysqld --defaults-file=../my.cnf --user=mysql
root      7697  7661  0 10:05 pts/2    00:00:00 grep mysql
[root@ora11g ~]# 
复制代码

 2.安全启动

复制代码
[root@ora11g bin]# ./mysqld_safe --defaults-file=../my.cnf --user=mysql &
[1] 7758
[root@ora11g bin]# 140328 10:13:16 mysqld_safe Logging to '/usr/local/mysql/data/ora11g.err'.
140328 10:13:16 mysqld_safe Starting mysqld daemon with databases from /usr/local/mysql/data

[root@ora11g bin]# ps -ef | grep mysql
root      7758  7661  0 10:13 pts/2    00:00:00 /bin/sh ./mysqld_safe --defaults-file=../my.cnf --user=mysql
mysql     8024  7758  0 10:13 pts/2    00:00:00 /usr/local/mysql/bin/mysqld --defaults-file=../my.cnf --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data --plugin-dir=/usr/local/mysql/lib/plugin --user=mysql --log-error=/usr/local/mysql/data/ora11g.err --pid-file=/usr/local/mysql/data/ora11g.pid --socket=/tmp/mysql.sock --port=3306
root      8044  7661  0 10:13 pts/2    00:00:00 grep mysql
[root@ora11g bin]# 
复制代码

 3.用服务的方式启动

复制代码
[root@ora11g support-files]# 
[root@ora11g support-files]# ./mysql.server start
Starting MySQL                                             [  OK  ]
[root@ora11g support-files]# ps -ef | grep mysql 
root      8433     1  3 10:24 pts/2    00:00:00 /bin/sh /usr/local/mysql/bin/mysqld_safe --datadir=/usr/local/mysql/data --pid-file=/usr/local/mysql/data/ora11g.pid
mysql     8705  8433 12 10:24 pts/2    00:00:00 /usr/local/mysql/bin/mysqld --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data --plugin-dir=/usr/local/mysql/lib/plugin --user=mysql --log-error=/usr/local/mysql/data/ora11g.err --pid-file=/usr/local/mysql/data/ora11g.pid --socket=/tmp/mysql.sock --port=3306
root      8723  7661  0 10:24 pts/2    00:00:00 grep mysql
[root@ora11g support-files]# 
复制代码

把mysql.server cp到 /etc/rc.d/init.d/mysql,再chkconfig --add mysql就ok了

复制代码
[root@ora11g support-files]# cp mysql.server  /etc/rc.d/init.d/mysql 
[root@ora11g support-files]# chkconfig --add mysql
[root@ora11g support-files]# chkconfig --list | grep mysql
mysql           0:off   1:off   2:on    3:on    4:on    5:on    6:off
[root@ora11g support-files]# service mysqld stop
mysqld: unrecognized service
[root@ora11g support-files]# service mysql stop 
Shutting down MySQL.                                       [  OK  ]
[root@ora11g support-files]# service mysql start
Starting MySQL..                                           [  OK  ]
[root@ora11g support-files]# ps -ef | grep mysql                     
root      8808     1  1 10:28 pts/2    00:00:00 /bin/sh /usr/local/mysql/bin/mysqld_safe --datadir=/usr/local/mysql/data --pid-file=/usr/local/mysql/data/ora11g.pid
mysql     9073  8808  2 10:28 pts/2    00:00:00 /usr/local/mysql/bin/mysqld --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data --plugin-dir=/usr/local/mysql/lib/plugin --user=mysql --log-error=/usr/local/mysql/data/ora11g.err --pid-file=/usr/local/mysql/data/ora11g.pid --socket=/tmp/mysql.sock --port=3306
root      9100  7661  0 10:28 pts/2    00:00:00 grep mysql
[root@ora11g support-files]# 
复制代码

 

查看mysql的启动时的参数:

[root@ora11g bin]# ./mysqld --help --verbose | less

### 启动MySQL服务的方法及解决方案 在Linux和Windows系统中,启动MySQL服务可能会遇到各种问题。以下是针对不同场景的解决方案。 #### 1. Linux下MySQL服务启动方法 在Linux系统中,可以使用以下命令启动MySQL服务[^1]: ```bash sudo systemctl start mysql ``` 如果`systemctl`不可用,可以尝试以下命令: ```bash sudo service mysql start ``` 如果启动失败,可以检查错误日志文件以获取更多信息: ```bash sudo tail -f /var/log/mysql/error.log ``` #### 2. Windows下MySQL服务启动方法 在Windows系统中,可以通过以下步骤启动MySQL服务[^2]: - **检查服务状态**:打开命令提示符,输入以下命令查看MySQL服务是否已启动: ```cmd sc query mysql ``` - **启动服务**:如果服务未启动,可以使用以下命令手动启动: ```cmd net start mysql ``` - **重新安装服务**:如果无法启动服务,可能是由于服务注册表损坏或冲突导致。可以按照以下步骤解决: 1. 停止MySQL服务(如果正在运行): ```cmd net stop mysql ``` 2. 删除现有的MySQL服务: ```cmd sc delete mysql ``` 3. 使用MySQL安装向导或手动命令重新创建服务: ```cmd "F:\Program Files\MySQL\MySQL Server 8.0\bin\mysqld" --install ``` #### 3. MySQL启动失败的常见原因及解决方案 启动失败的原因可能包括配置文件错误、端口冲突、权限问题等。以下是具体的排查步骤[^3]: - **检查配置文件**:确保`my.ini`或`my.cnf`文件中的路径和参数正确无误。 - 示例配置文件路径: ```plaintext [mysqld] basedir="F:\\Program Files\\MySQL\\MySQL Server 8.0" datadir="F:\\ProgramData\\MySQL\\MySQL Server 8.0\\Data" port=3306 ``` - 如果配置文件有问题,可以使用以下命令指定配置文件启动: ```cmd "F:\Program Files\MySQL\MySQL Server 8.0\bin\mysqld" --defaults-file="F:\Program Files\MySQL\MySQL Server 8.0\my.ini" ``` - **检查端口占用**:默认情况下,MySQL使用3306端口。可以通过以下命令检查端口是否被占用: ```cmd netstat -ano | findstr :3306 ``` 如果端口被占用,可以在配置文件中更改端口号。 - **修复数据目录**:如果数据目录损坏,可能导致启动失败。可以尝试以下方法修复: 1. 备份现有数据目录。 2. 删除或重命名数据目录。 3. 使用初始化命令重新生成数据目录: ```cmd "F:\Program Files\MySQL\MySQL Server 8.0\bin\mysqld" --initialize --console ``` #### 4. 登录失败问题(错误代码1045) 如果登录时出现错误代码1045,通常是因为密码错误或权限不足。可以尝试以下方法解决[^1]: - 使用跳过权限验证的方式重启MySQL服务: ```cmd mysqld --skip-grant-tables ``` - 然后通过命令行登录MySQL并修改用户密码: ```sql FLUSH PRIVILEGES; ALTER USER 'root'@'localhost' IDENTIFIED BY '新密码'; ``` --- ### 注意事项 在执行上述操作时,请确保备份重要数据,避免因操作失误导致数据丢失。 ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值