Linux + Apache(httpd)+ MySQL + PHP php
PHP网站(Google、淘宝、百度、51cto博客、猿课论坛)html
三个角色能够在一台机器、也能够分开(httpd和PHP要在一块儿)mysql
LAMP架构介绍linux
httpd 、 PHP 、MySQL 三者如何工做 sql
Apache(httpd)和 PHP是一个总体 (PHP是以一个模块的形式和Apache结合在一块儿)数据库
可是Apache不能直接和MySQL 相互打交道,等经过PHP 模块,去MYSOL 里面拿数据,PHP把结果交给给apche ,apache 再交给用户,这样的一个过程,这种php 和 mysql 相连取数据的操做行为,叫作动态行为apache
访问一个网站,首先要登陆,在登陆的时候,这样的一个过程,在浏览器里输入网址,点登陆,请求交给了apache ,apache 先检查,看下请求是动态仍是静态,登陆这个行为须要去把你的用户名密码提交给apache,apache拿到你的用户名密码,去数据库里面比对,看看是否正确,经过PHP模块和 mysql 去打交道,经过mysql 查到你的用户名密码是什么,而后php 作对比,看看对不对,若是对,apache 会返回给您一个登陆的状态,这个过程属于一个动态的请求bootstrap
动态请求 好比用户进入猿课论坛输入本身的帐号密码vim
好比访问的图片,网站的logo,好比访问论坛的一个logo, 这个logo 也是须要到apache 上去请求的,apache拿到logo logo 它并无存在mysql 里面 ,因此直接从静态文件这,也是就是你的linux服务器上 其中的一个目录下拿到这个图片 ,直接返回给用户,这个过程并无和MySQL打交道,这个过程属于静态请求浏览器
静态请求,好比查看网站的图片、内容
MySQL里面不能存图片、文件, 能够存一些用户名密码,积分,回复帖子的内容
MySQL是一个关系型数据库,由mysql ab公司开发,mysql在2008年被sun公司收购(10亿刀),2009年sun公司被oracle公司收购(74亿刀)
MySQL官网https://www.mysql.com 最新版本5.7GA/8.0DMR
MySQL5.6变化比较大,5.7性能上有很大提高
Mariadb为MySQL的一个分支,官网https://mariadb.com/最新版本10.2
MariaDB主要由SkySQL公司(现改名为MariaDB公司)维护,SkySQL公司由MySQL原做者带领大部分原班人马创立.
Mariadb5.5版本对应MySQL的5.5,10.0对应MySQL5.6 Community 社区版本,Enterprise 企业版,GA(Generally Available)指通用版本,在生产环境中用的,DMR(Development Milestone Release)开发里程碑发布版,RC(ReleaseCandidate)发行候选版本,Beta开放测试版本,Alpha内部测试版本
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
|
11.3 MySQL 安装 (上)
- MySQL的几个经常使用安装包:rpm、源码、二进制免编译
- 二进制免编译(发布以前在linux服务器上租了一个编译,编译完了以后,把编译完成的文件从新安排,放到一个目录下去,而后打包压缩,发布)有一个好处,不用花那么多时间去配置,直接拿来用就能够
- rpm 包有一个缺点,没有办法去定义你所安装的路径,默认就安装在 /usr 下
- 二进制免编译包能够放在一个目录下,好比说 /urs/local/src 下,也能够放在别的目录下,随便你本身
- 二进制免编译包毕竟在其余编辑器上编辑的,若是想追求极致的性能,就本身去编译
- 若是工做中没有特殊的要求,能够用二进制免编译包就能够。
- 先进入到目录 /usr/local/src
```
[root@aminglinux-001 ~] # cd /usr/local/src/
[root@aminglinux-001 src] # ls
httpd-2.4.27 httpd-2.4.27. tar .gz
```
- 用命令 uname -a 查看当前系统版本,x86_64 这个是64位的
- 能够去r.aminglinux.com 下载地址 ,咱们这边下载5.6_64位二进制包
```
[root@aminglinux-001 src] # uname -a
Linux aminglinux-001 3.10.0-514.el7.x86_64 #1 SMP Tue Nov 22 16:42:41 UTC 2016 x86_64 x86_64 x86_64 GNU/Linux
[root@aminglinux-001 src] #
```
- 使用wget下载
```
[root@aminglinux-001 src] # wget http://mirrors.sohu.com/mysql/MySQL-5.6/mysql-5.6.35-linux-glibc2
--2017-09-19 23:06:16-- http: //mirrors .sohu.com /mysql/MySQL-5 .6 /mysql-5 .6.35-linux-glibc2.5-x86_
正在解析主机 mirrors.sohu.com (mirrors.sohu.com)... 221.236.12.140
正在链接 mirrors.sohu.com (mirrors.sohu.com)|221.236.12.140|:80... 已链接。
已发出 HTTP 请求,正在等待回应... 200 OK
长度:314581668 (300M) [application /octet-stream ]
正在保存至: “mysql-5.6.35-linux-glibc2.5-x86_64. tar .gz”
12% [============> 100%[======================================================>] 314,581,668 486KB /s 用时 18m 3s
2017-09-19 23:24:19 (284 KB /s ) - 已保存 “mysql-5.6.35-linux-glibc2.5-x86_64. tar .gz” [314581668 /314581668 ])
[root@aminglinux-001 src] #
```
11.4 MySQL 安装 (中)
- 下载完以后第一步是要解压,
```
[root@aminglinux-001 src] # ls
httpd-2.4.27 httpd-2.4.27. tar .gz mysql-5.6.35-linux-glibc2.5-x86_64. tar .gz
[root@aminglinux-001 src] # tar zxvf mysql-5.6.35-linux-glibc2.5-x86_64.tar.gz
.
.
.
mysql-5.6.35-linux-glibc2.5-x86_64 /mysql-test/include/stop_slave .inc
mysql-5.6.35-linux-glibc2.5-x86_64 /mysql-test/mysql-test-run .pl
mysql-5.6.35-linux-glibc2.5-x86_64 /mysql-test/purify .supp
mysql-5.6.35-linux-glibc2.5-x86_64 /mysql-test/valgrind .supp
```
- 挪目录到 local 目录下 而且更名mysql(mysql也是目录), mv /usr/local/mysql ,而后到mysql目录下
```
[root@aminglinux-001 src] # mv mysql-5.6.35-linux-glibc2.5-x86_64 /usr/local/mysql
[root@aminglinux-001 src] # cd /usr/local/mysql/
[root@aminglinux-001 mysql] # ls
bin data include man README share support-files
COPYING docs lib mysql- test scripts sql-bench
[root@aminglinux-001 mysql] #
```
- 建立mysql用户,建立目录 /data/
```
[root@aminglinux-001 mysql] # useradd mysql
[root@aminglinux-001 mysql] # mkdir /data/
mkdir : 没法建立目录 "/data/" : 文件已存在
[root@aminglinux-001 mysql] # ls /data/
liurongluan
[root@aminglinux-001 mysql] #
```
- 运行. /scripts/mysql_install_db --user=mysql --datadir= /data/mysql 初始化
```
[root@aminglinux-001 mysql] # ./scripts/mysql_install_db --user=mysql --datadir=/data/mysql
FATAL ERROR: please install the following Perl modules before executing . /scripts/mysql_install_db :
Data::Dumper
[root@aminglinux-001 mysql] #
```
- 如今报错了, please install the following Perl modules before executing 提示少了一个perl模块,名字是Dumper,尝试搜索一下
```
[root@aminglinux-001 mysql] # ./scripts/mysql_install_db --user=mysql --datadir=/data/mysql
FATAL ERROR: please install the following Perl modules before executing . /scripts/mysql_install_db :
Data::Dumper
[root@aminglinux-001 mysql] # yum list |grep perl |grep -i dumper
perl-Data-Dumper.x86_64 2.145-3.el7 base
perl-Data-Dumper-Concise.noarch 2.020-6.el7 epel
perl-Data-Dumper-Names.noarch 0.03-17.el7 epel
perl-XML-Dumper.noarch 0.81-17.el7 base
[root@aminglinux-001 mysql] #
```
- 安装第四个试下 perl-XML-Dumper
```
[root@aminglinux-001 mysql] # yum install -y perl-XML-Dumper
已加载插件:fastestmirror
base | 3.6 kB 00:00:00
epel /x86_64/metalink
已安装:
perl-XML-Dumper.noarch 0:0.81-17.el7
做为依赖被安装:
perl-XML-Parser.x86_64 0:2.41-10.el7
完毕!
[root@aminglinux-001 mysql] # ./scripts/mysql_install_db --user=mysql --datadir=/data/mysql
FATAL ERROR: please install the following Perl modules before executing . /scripts/mysql_install_db :
Data::Dumper
[root@aminglinux-001 mysql] #
```
- 仍是不行,再试下第一个包 perl-Data-Dumper
```
[root@aminglinux-001 mysql] # yum install -y perl-Data-Dumper
已加载插件:fastestmirror
Loading mirror speeds from cached hostfile
* epel: mirrors.tuna.tsinghua.edu.cn
已安装:
perl-Data-Dumper.x86_64 0:2.145-3.el7
完毕!
[root@aminglinux-001 mysql] # ./scripts/mysql_install_db --user=mysql --datadir=/data/mysql
Installing MySQL system tables...2017-09-23 13:01:36 0 [Warning] TIMESTAMP with implicit DEFAULT value is deprecated. Please use --explicit_defaults_for_timestamp server option (see documentation for more details).
2017-09-23 13:01:36 0 [Note] Ignoring --secure- file -priv value as server is running with --bootstrap.
2017-09-23 13:01:36 0 [Note] . /bin/mysqld (mysqld 5.6.35) starting as process 2630 ...
2017-09-23 13:01:36 2630 [Note] InnoDB: Using atomics to ref count buffer pool pages
2017-09-23 13:01:36 2630 [Note] InnoDB: The InnoDB memory heap is disabled
Support MySQL by buying support /licenses at http: //shop .mysql.com
New default config file was created as . /my .cnf and
will be used by default by the server when you start it.
You may edit this file to change server settings
WARNING: Default config file /etc/my .cnf exists on the system
This file will be read by default by the MySQL server
If you do not want to use this, either remove it, or use the
--defaults- file argument to mysqld_safe when starting the server
[root@aminglinux-001 mysql] #
```
- 能够了,怎么查看一个命令执行完后 是否正确? 再上一个命令运行完以后 echo $? 结果是0 就是正确的,是1就是错误的
```
[root@aminglinux-001 mysql] # echo $?
0
[root@aminglinux-001 mysql] #
```
- 初始化完成,下面就是拷贝配置文件和启动脚本,配置文件在哪?在这个目录下support-files/
```
[root@aminglinux-001 mysql] # ls support-files/
binary-configure magic my-default.cnf mysqld_multi.server mysql-log-rotate mysql.server
[root@aminglinux-001 mysql] #
[root@aminglinux-001 mysql] # ls support-files/my-default.cnf
support-files /my-default .cnf
```
- 这里面大部分都是注释文件
```
[root@aminglinux-001 mysql] # vi support-files/my-default.cnf
# For advice on how to change settings please see
# http://dev.mysql.com/doc/refman/5.6/en/server-configuration-defaults.html
# *** DO NOT EDIT THIS FILE. It's a template which will be copied to the
# *** default location during install, and will be replaced if you
# *** upgrade to a newer version of MySQL.
[mysqld]
# Remove leading # and set to the amount of RAM for the most important data
# cache in MySQL. Start at 70% of total RAM for dedicated server, else 10%.
# innodb_buffer_pool_size = 128M
# Remove leading # to turn on a very important data integrity option: logging
# changes to the binary log between backups.
# log_bin
# These are commonly set, remove the # and set as required.
# basedir = .....
# datadir = .....
# port = .....
# server_id = .....
# socket = .....
# Remove leading # to set options mainly useful for reporting servers.
# The server defaults are faster for transactions and fast SELECTs.
# Adjust sizes as needed, experiment to find the optimal values.
"support-files/my-default.cnf" 31L, 1126C
```
- 下面就是拷贝配置文件和启动脚本
```
[root@aminglinux-001 mysql] # cp support-files/my-default.cnf /etc/my.cnf^C
```
- 拷贝以前 也能够看下系统自带的my.cnf 文件,要用自带的my.conf 须要修改里面配置文件
```
[root@aminglinux-001 mysql] # ls /etc/my.cnf
/etc/my .cnf
[root@aminglinux-001 mysql] # rpm -qf /etc/my.cnf
mariadb-libs-5.5.52-1.el7.x86_64
[root@aminglinux-001 mysql] #
[root@aminglinux-001 mysql] # vim /etc/my.cnf
[mysqld]
datadir= /var/lib/mysql
socket= /var/lib/mysql/mysql .sock
# Disabling symbolic-links is recommended to prevent assorted security risks
symbolic-links=0
# Settings user and group are ignored when systemd is used.
# If you need to run mysqld under a different user or group,
# customize your systemd unit file for mariadb according to the
# instructions in http://fedoraproject.org/wiki/Systemd
[mysqld_safe]
log-error= /var/log/mariadb/mariadb .log
pid- file = /var/run/mariadb/mariadb .pid
#
# include all files from the config directory
```
- 须要修改 /etc/my .cnf 用默认的配置文件
```
[mysqld]
datadir= /data/mysql
socket= /tmp/mysql/mysql .sock
# Disabling symbolic-links is recommended to prevent assorted security risks
symbolic-links=0
# Settings user and group are ignored when systemd is used.
# If you need to run mysqld under a different user or group,
# customize your systemd unit file for mariadb according to the
# instructions in http://fedoraproject.org/wiki/Systemd
[mysqld_safe]
#log-error=/var/log/mariadb/mariadb.log
#pid-file=/var/run/mariadb/mariadb.pid
#
# include all files from the config directory
#
#!includedir /etc/my.cnf.d
~
:wq
```
- 再一个就是它的启动脚本
```
[root@aminglinux-001 mysql] # ls
bin data include man mysql- test scripts sql-bench
COPYING docs lib my.cnf README share support-files
[root@aminglinux-001 mysql] #
```
11.5 MySQL 安装 (下)
- 再一个就是它的启动脚本
```
[root@aminglinux-001 mysql] # ls
bin data include man mysql- test scripts sql-bench
COPYING docs lib my.cnf README share support-files
[root@aminglinux-001 mysql] #
[root@aminglinux-001 mysql] # ls support-files/
binary-configure my-default.cnf mysql-log-rotate
magic mysqld_multi.server mysql.server
```
- 把support-files /mysql .server脚本 拷贝到 更名 /etc/init .d /mysqld
```
[root@aminglinux-001 mysql] # cp support-files/mysql.server /etc/init.d/mysqld
[root@aminglinux-001 mysql] #
[root@aminglinux-001 mysql] # vi /etc/init.d/mysqld
# If you want to affect other MySQL variables, you should make your changes
# in the /etc/my.cnf, ~/.my.cnf or other MySQL configuration files.
# If you change base dir, you must also change datadir. These may get
# overwritten by settings in the MySQL configuration files.
basedir=
datadir=
-- INSERT --
```
- 改下basedir datadir
```
# If you change base dir, you must also change datadir. These may get
# overwritten by settings in the MySQL configuration files.
basedir= /usr/local/mysql
datadir= /data/mysql
:wq
```
- 看下权限是755
```
[root@aminglinux-001 mysql] # vi /etc/init.d/mysqld
[root@aminglinux-001 mysql] # ls -l /etc/init.d/mysqld
-rwxr-xr-x 1 root root 10902 9月 23 13:27 /etc/init .d /mysqld
[root@aminglinux-001 mysql] #
```
- 若是想让它开机启动,须要把它加入到系统服务列表里去 下次开机会自动启动
```
[root@aminglinux-001 mysql] # chkconfig --add mysqld
[root@aminglinux-001 mysql] # chkconfig --list
注意:该输出结果只显示 SysV 服务,并不包含原生 systemd 服务。SysV 配置数据可能被原生 systemd 配置覆盖。
若是您想列出 systemd 服务,请执行 'systemctl list-unit-files' 。
欲查看对特定 target 启用的服务请执行
'systemctl list-dependencies [target]' 。
mysqld 0:关 1:关 2:开 3:开 4:开 5:开 6:关
netconsole 0:关 1:关 2:关 3:关 4:关 5:关 6:关
network 0:关 1:关 2:开 3:关 4:关 5:关 6:关
[root@aminglinux-001 mysql] #
```
- 一样的,也能够直接用命令把它启动起来
/etc/init .d /mysql start
- 也能够这样service mysqld start
```
[root@aminglinux-001 mysql] # ls -l /etc/init.d/mysqld
-rwxr-xr-x 1 root root 10875 9月 23 18:13 /etc/init .d /mysqld
[root@aminglinux-001 mysql] # chmod 755 /etc/init.d/mysqld
[root@aminglinux-001 mysql] # vim /etc/init.d/mysqld
[root@aminglinux-001 mysql] # chkconfig --add mysqld
[root@aminglinux-001 mysql] # chkconfig mysqld on
[root@aminglinux-001 mysql] # service mysqld start
Starting MySQL.Logging to '/data/mysql/aminglinux-001.err' .
.. SUCCESS!
[root@aminglinux-001 mysql] #
```
- 查看下服务 是否有,看下进程
```
[root@aminglinux-001 mysql] # ps aux |grep mysql
root 6110 0.0 0.1 11764 1580 pts /0 S 18:15 0:00 /bin/sh /usr/local/mysql/bin/mysqld_safe --datadir= /data/mysql --pid- file = /data/mysql/aminglinux-001 .pid
mysql 6320 0.8 45.6 973052 456580 pts /0 Sl 18:15 0:01 /usr/local/mysq/bin/mysqld --basedir= /usr/local/mysql --datadir= /data/mysql --plugin- dir = /usr/local/mysql/lib/plugin --user=mysql --log-error= /data/mysql/aminglinux-001 .err --pid- file = /data/mysql/aminglinux-001 .pid --socket= /tmp/mysql .sock --port=3306
root 6386 0.0 0.0 112664 976 pts /0 S+ 18:19 0:00 grep --color=auto mysql
[root@aminglinux-001 mysql] # netstat -lntp
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address Foreign Address State PID /Program name
tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN 1131 /sshd
tcp 0 0 127.0.0.1:25 0.0.0.0:* LISTEN 1648 /master
tcp6 0 0 :::3306 :::* LISTEN 6320 /mysqld
tcp6 0 0 :::22 :::* LISTEN 1131 /sshd
tcp6 0 0 ::1:25 :::* LISTEN 1648 /master
[root@aminglinux-001 mysql] #
```
- 若是说有一天你没有办法把启动脚本放到 /etc/init .d/ 下去,或者说你根本就没有这样的启动模板去拷贝,能够用这种方法去启动
- 首先咱们先给mysqld 停掉
```
[root@aminglinux-001 mysql] # service mysqld stop
Shutting down MySQL.. SUCCESS!
[root@aminglinux-001 mysql] # !ps
ps aux | grep mysql
root 6427 0.0 0.0 112664 972 pts /0 S+ 18:23 0:00 grep --color=auto mysql
```
- 使用这种方法命令行的方式启动
```
[root@aminglinux-001 mysql] # /usr/local/mysql/bin/mysqld_safe --defaults-file=/etc/my.cnf --user=mysql --datadir=/data/mysql &
[2] 6716
[1] 完成 /usr/local/mysql/bin/mysqld_safe --default- file = /etc/my .cnf --user=mysql --datadir= /data/mysql
[root@aminglinux-001 mysql] # 170923 18:28:43 mysqld_safe Logging to '/data/mysql/aminglinux-001.err'.
170923 18:28:43 mysqld_safe Starting mysqld daemon with databases from /data/mysql
[root@aminglinux-001 mysql] #
[root@aminglinux-001 mysql] # ps aux |grep mysql
root 6716 0.0 0.1 113256 1584 pts /0 S 18:28 0:00 /bin/sh /usr/local/mysql/bin/mysqld_safe --defaults- file = /etc/my .cnf --user=mysql --datadir= /data/mysql
mysql 6914 0.5 45.4 973052 454888 pts /0 Sl 18:28 0:00 /usr/local/mysql/binmysqld --defaults- file = /etc/my .cnf --basedir= /usr/local/mysql --datadir= /data/mysql --plugin- dir = /usr/local/mysql/lib/plugin --user=mysql --log-error= /data/mysql/aminglinux-001 .err --pid- file = /data/mysql/aminglinux-001 .pid --socket= /tmp/mysql .sock --port=3306
root 6937 0.0 0.0 112664 976 pts /0 S+ 18:29 0:00 grep --color=auto mysql
[root@aminglinux-001 mysql] #
[root@aminglinux-001 mysql] # netstat -lntp
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address Foreign Address State PID /Program name
tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN 1131 /sshd
tcp 0 0 127.0.0.1:25 0.0.0.0:* LISTEN 1648 /master
tcp6 0 0 :::3306 :::* LISTEN 6914 /mysqld
tcp6 0 0 :::22 :::* LISTEN 1131 /sshd
tcp6 0 0 ::1:25 :::* LISTEN 1648 /master
[root@aminglinux-001 mysql] #
```
- 那怎么去关呢,能够用killall mysqld 命令 把这个服务停掉
```
[root@aminglinux-001 mysql] # killall mysqld
[root@aminglinux-001 mysql] # 170923 18:32:07 mysqld_safe mysqld from pid file /data/mysql/aminglinux-001.pid ended
[root@aminglinux-001 mysql] # !ps
ps aux | grep mysql
root 6950 0.0 0.0 112664 976 pts /0 R+ 18:32 0:00 grep --color=auto mysq
[2]+ 完成 /usr/local/mysql/bin/mysqld_safe --defaults- file = /etc/my .cnf
[root@aminglinux-001 mysql] #
```
- 建议你们用killall 安全一些,先中止当前的写读操做,把那些没有完成磁盘写入的数据写到磁盘里去,知道写完以后 才把进程杀死,
- 若是之后遇到 mysqld 的进程 适中杀不死,等了很久没有把进程杀死 ps 还有进程,那说明你的数据量很大,正在慢慢的写入磁盘离去,不要强制用 kill ,很容易致使数据丢失,就慢慢的等就行了,
- mysql 有俩个引擎 一个是innodb 一个是 myisam(存储量比较小)
## 扩展
- mysql5.5源码编译安装 http: //www .aminglinux.com /bbs/thread-1059-1-1 .html
- MYSQL5.5源码安装 linux下 ,首先安装必要的库
```
yum -y install gcc*
###### 安装 MYSQL ######
首先安装camke
1、支持YUM,则
yum install -y cmake
2、也能够源码安装
cd /usr/local/src
#下载cmake
wget http: //www .cmake.org /files/v2 .8 /cmake-2 .8.7. tar .gz
tar zxvf cmake-2.8.7. tar .gz
cd cmake-2.8.7
#安装cmake
. /configure
make
make install
安装 MYSQL
官网下载 MYSQL5.5版本 linux下源码包
http: //dev .mysql.com /downloads/
安装
groupadd mysql
useradd -g mysql mysql
tar zxvf mysql-5.2.25. tar .gz
cd mysql-5.2.25
#cmake . //默认状况下安装,安装目录为/usr/local/mysql 数据目录为/usr/local/mysql/data
#也能够指定参数安装,如指定UTF8,数据引擎等
#具体参照http://dev.mysql.com/doc/refman/ ... ration-options.html
cmake -DCMAKE_INSTALL_PREFIX= /usr/local/mysql -DMYSQL_DATADIR= /mysql/data -DDEFAULT_CHARSET=utf8 -DDEFAULT_COLLATION=utf8_general_ci -DWITH_EXTRA_CHARSETS:STRING=all -DWITH_DEBUG=0 -DWITH_SSL= yes -DWITH_READLINE=1 -DENABLED_LOCAL_INFILE=1
make && make install
cd /usr/local/mysql
chown -R mysql:mysql /usr/local/mysql
. /scripts/mysql_install_db --user=mysql -datadir= /mysql/data
#此处如不指定datadir,到启动时会报错
chown -R root .
chown -R mysql data
cp support-files /my-medium .cnf /etc/my .cnf
bin /mysqld_safe --user=mysql &
# Next command is optional
cp support-files /mysql .server /etc/init .d /mysqld
chmod +x /etc/init .d /mysqld
/etc/init .d /mysqld start
```
到此,安装完成
- mysql5.7二进制包安装(变化较大) http: //www .apelearn.com /bbs/thread-10105-1-1 .html
- mysql5.7 二进制包安装
```
1. 下载包
wget http: //mirrors .sohu.com /mysql/MySQL-5 .7 /mysql-5 .7.12-linux-glibc2.5-x86_64. tar .gz
若该连接失效,请到r.aminglinux.com 找最新的下载地址。
2. 解压
tar xxvf mysql-5.7.12-linux-glibc2.5-x86_64. tar .gz
mv mysql-5.7.12-linux-glibc2.5-x86_64 /usr/local/mysql
3. 初始化
useradd -M -s /sbin/nologin mysql
mkdir -p /data/mysql
chown mysql /data/mysql
cd /usr/local/mysql
. /bin/mysqld --initialize --user=mysql --datadir= /data/mysql
注意,这一步最后一行会有一个提示
[Note] A temporary password is generated for root@localhost: B*s1i(*,kXwg
最后面的字符串为root密码。
. /bin/mysql_ssl_rsa_setup --datadir= /data/mysql
4. 拷贝配置文件和启动脚本
cp support-files /my-default .cnf /etc/my .cnf
vim /etc/my .cnf // 编辑或者修改
basedir = /usr/local/mysql
datadir = /data/mysql
port = 3306
socket = /tmp/mysql .sock
cp support-files /mysql .server /etc/init .d /mysqld
vi /etc/init .d /mysqld // 编辑或者修改
basedir= /usr/local/mysql
datadir= /data/mysql
5. 启动服务
/etc/init .d /mysqld start
6. 设置root密码
使用初始化密码登陆
/usr/local/mysql/bin/mysql -uroot -p 'B*s1i(*,kXwg' // 进入后直接设置密码
mysql> set password = password( 'mypass' ); // 必定要设置一下新密码
退出来,再使用新的密码登陆就能够了
还有一种状况,就是不知道初始化密码
vi /etc/my .cnf
在[mysqld]下面增长一行
skip-grant-tables
重启 /etc/init .d /mysqld restart
/usr/local/mysql/bin/mysql -uroot
mysql> update user set authentication_string=password( '123333' ) where user= 'root' ;
退出来后,更改my.cnf,去掉刚加的 skip-grant-tables
重启 /etc/init .d /mysqld restart
```
- 此时就可使用新的密码了。
|