Movatterモバイル変換


[0]ホーム

URL:


Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

Commitff068b4

Browse files
authored
使用Docker部署MYSQL和建立数据表,使用php远程访问学习示例
1 parentb17ee87 commitff068b4

File tree

1 file changed

+140
-0
lines changed

1 file changed

+140
-0
lines changed

‎mysql_test.md‎

Lines changed: 140 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,140 @@
1+
![mysql.webp][1]
2+
##使用Docker部署MYSQL和建立数据表,使用php远程访问学习示例
3+
4+
###命令: vim`docker-compose.yml` # 建立`docker-compose` 部署文件
5+
6+
```
7+
version: '3.1'
8+
services:
9+
db:
10+
image: mysql
11+
command: --default-authentication-plugin=mysql_native_password
12+
restart: always
13+
environment:
14+
MYSQL_ROOT_PASSWORD: test-mysql@2022
15+
ports:
16+
- 53306:3306
17+
18+
adminer:
19+
image: adminer
20+
restart: always
21+
ports:
22+
- 10086:8080
23+
```
24+
25+
###使用`linuxserver/docker-compose` 部署 MYSQL 和 adminer 服务
26+
27+
```
28+
docker run --rm \
29+
-v /var/run/docker.sock:/var/run/docker.sock \
30+
-v "$PWD:$PWD" \
31+
-w="$PWD" \
32+
linuxserver/docker-compose \
33+
up
34+
```
35+
36+
###部署完成,浏览器访问`http://ip:10086` 登陆管理建立数据库
37+
38+
- 可以web-ui建立数据库和添加用户,也可以使用执行 sql 命令完成创建用户
39+
40+
```
41+
# 创建数数据库: world
42+
CREATE DATABASE `world` COLLATE 'utf8mb4_bin';
43+
44+
# 创建用户密码
45+
CREATE USER 'test'@'%' IDENTIFIED BY 'NSbgs4Z8nYAnqhW';
46+
47+
# 修改用户密码
48+
SET PASSWORD FOR 'test'@'localhost' = 'test@localhost';
49+
50+
# 修改远程链接的用户
51+
CREATE USER 'test22'@'%' IDENTIFIED BY 'NSbgs4Z8nYAnqhW';
52+
GRANT ALL PRIVILEGES ON `world`.* TO 'test22'@'%';
53+
```
54+
SQL命令中的 'test22'@'%' 可以这样理解: test22是用户名,%是主机名或IP地址,这里的%代表任意主机或IP地址,
55+
你也可替换成任意其它用户名或指定唯一的IP地址;'MyPassword'是给授权用户指定的登录数据库的密码
56+
57+
![111.png][2]
58+
59+
###`CREATE TABLE` 创建`City` 数据表,如果已经存在,使用`DROP TABLE` 先删除
60+
61+
```
62+
# DROP TABLE IF EXISTS `City`;
63+
CREATE TABLE `City` ( `ID` int, `Name` text, `CountryCode` text,
64+
`District` text, `Population` int );
65+
```
66+
67+
###`INSERT INTO``City` 数据表插入数据,或者使用备份的出来的数据导入`City.sql.gz`[下载](https://github.com/hongwenjun/vps_setup/raw/remove/mysql/City.sql.gz)
68+
-`City.sql.gz`[下载](https://github.com/hongwenjun/vps_setup/raw/remove/mysql/City.sql.gz)
69+
70+
```
71+
INSERT INTO `City` (`ID`, `Name`, `CountryCode`, `District`, `Population`) VALUES
72+
(1,'Kabul','AFG','Kabol',1780000),
73+
(2,'Qandahar','AFG','Qandahar',237500),
74+
(3,'Herat','AFG','Herat',186800),
75+
(4,'Mazar-e-Sharif','AFG','Balkh',127800),
76+
(5,'Amsterdam','NLD','Noord-Holland',731200),
77+
78+
(4078,'Nablus','PSE','Nablus',100231),
79+
(4079,'Rafah','PSE','Rafah',92020);
80+
81+
```
82+
83+
##使用php远程访问学习示例
84+
85+
###在建立php环境的机器上,使用命令行测试
86+
87+
```
88+
docker exec -it nginx-php bash
89+
php -a
90+
91+
$link = mysqli_connect("18.18.18.18", "test22", "NSbgs4Z8nYAnqhW", "world","53306");
92+
$result = mysqli_query($link, "SELECT * FROM City LIMIT 10");
93+
$rows = mysqli_fetch_all($result);
94+
var_dump($rows);
95+
96+
```
97+
98+
![test.php.png][3]
99+
100+
###`test.php` 源码, 演示站https://262235.xyz/test/test.php (php服务国内,mysql在美西)
101+
102+
```
103+
<?php
104+
// $link = mysqli_connect("localhost", "my_user", "my_password", "world");
105+
$link = mysqli_connect("18.18.18.18", "test22", "NSbgs4Z8nYAnqhW", "world","53306");
106+
107+
/* check connection */
108+
if (mysqli_connect_errno()) {
109+
printf("Connect failed: %s\n", mysqli_connect_error());
110+
exit();
111+
}
112+
113+
/* Create table doesn't return a resultset */
114+
if (mysqli_query($link, "CREATE TEMPORARY TABLE myCity LIKE City") === TRUE) {
115+
printf("Table myCity successfully created.\n");
116+
}
117+
118+
/* Select queries return a resultset */
119+
if ($result = mysqli_query($link, "SELECT * FROM City LIMIT 10")) {
120+
printf("Select returned %d rows.\n", mysqli_num_rows($result));
121+
122+
$rows = mysqli_fetch_all($result, MYSQLI_ASSOC);
123+
var_dump($rows);
124+
125+
/* free result set */
126+
mysqli_free_result($result);
127+
}
128+
129+
$result = mysqli_query($link, "SELECT * FROM City LIMIT 10");
130+
$rows = mysqli_fetch_all($result);
131+
var_dump($rows);
132+
133+
mysqli_close($link);
134+
?>
135+
```
136+
137+
138+
[1]:https://262235.xyz/usr/uploads/2021/12/1342246453.webp
139+
[2]:https://262235.xyz/usr/uploads/2021/12/1011972683.png
140+
[3]:https://262235.xyz/usr/uploads/2021/12/925080225.png

0 commit comments

Comments
 (0)

[8]ページ先頭

©2009-2025 Movatter.jp