当前位置:   article > 正文

docker ubuntu mysql_Ubuntu运行docker,连接mysql

unbturn docker mysql

一、搭建项目环境

1.在Ubuntu中安装Docker

更新ubuntu的apt源索引

sudo apt-get update

安装包允许apt通过HTTPS使用仓库

sudo apt-get install \

apt-transport-https \

ca-certificates \

curl \

software-properties-common

添加Docker官方GPG key

curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -

设置Docker稳定版仓库

sudo add-apt-repository \

"deb [arch=amd64] https://download.docker.com/linux/ubuntu \

$(lsb_release -cs) \

stable"

添加仓库后,更新apt源索引

sudo apt-get update

安装最新版Docker CE(社区版)

sudo apt-get install docker-ce

检查Docker CE是否安装正确

sudo docker run hello-world

出现如下信息,表示安装成功

2026e104a4486db79c2b7fc610e96271.png

为了避免每次命令都输入sudo,可以设置用户权限,注意执行后须注销重新登录

sudo usermod -a -G docker $USER

启动docker

sudo service docker start

2.安装Docker-compose

1.进入https://github.com/docker/compose/releases 查看最新版本,当前版本为1.23.1

sudo curl -L https://github.com/docker/compose/releases/download/1.23.1/docker-compose-`uname -s`-`uname -m` -o /usr/local/bin/docker-compose

2.设置权限

sudo chmod +x /usr/local/bin/docker-compose

3.查看是否安装成功

docker-compose --version

如果报 [12147] Cannot open self /usr/local/bin/docker-compose or archive /usr/local/bin/docker-compose.pkg  应该是包没下载完整,1、2、3步骤再来一遍。

3.下载后台镜像

将镜像放进ubuntu系统中,解压到docker目录下 ,就会产生下面5个文件(长方形中)

cd ~/docker/

a2c34077cd4d75a0942c76aa7be738a2.png

4.运行sh脚本,提取镜像文件

bash make_xy.sh XXX 8888 ~/touch_code/bbs ~/logs

XXX就是你的项目名 我的是项目名是grow_score

bash make_xy.sh grow_score 8888 ~/touch_code/bbs ~/logs

就会自动生成图上剩余文件夹

进入你建立的项目,修改yaml文件中的路径

ee697a76345ac2c2bc963b4f00785f11.png

- /home/liugang/touch_code/grow_score:/data/html/grow_score

- /home/liugang/touch_code/xyframework:/data/html/xyframework

- /home/liugang/logs/php-fpm:/data/logs/php-fpm

- /home/liugang/logs/sfpm:/data/logs/sfpm

- /home/liugang/logs/scli:/data/logs/scli

关闭Nginx中的数据加密,在www.conf中添加 gzip off;

9e201a58e0631d7daf6be16441806beb.png

打开控制台,执行框架

sudo make run

makefile文件中有项目执行指令

sudo make stop停止项目等等

5.git拉取xy框架和项目空框架

将两个框架内部文件分别对应文件名放置到 ~ 文件夹中的touch_code中

4db585e4ce2700533ae7c1652e190d7d.png

0304a84376a60bdf4126b4b52af0855a.png

此时会生成如下两图

40eb93292306238a881e00736c4332c7.png

53f18a9d770015901a616d6c2cfc0167.png

包名就是项目名要,跟yaml配置一致

1代表版本v1

config是配置文件

service是代码放置的地方

29c5eb999f433ad960182e3fa7dd21b2.png

8f900a89c6347c561fdf2122f13be562.png

961ddebeb323a10fe0623af514929fc1.png

{public functiongetLevel(){return '1';

}

}

GrowScoreService

6.更改ms中网管配置

ifconfig

查看虚拟机ip

{

"addrs": [{

"url": "http://10.10.30.161:8888/",

"env": 0,

"protocol": "json",

"stop": false

}],

"type": "php",

"name": "grow_score"

}

7.前端调用

SoaClient.getSoa(‘grow_score’, 'v1/growScore').getLevel()

grow_score项目名  v1版本号   growScore 代码GrowScoreService  getLevel()方法。

网址直接调用 :host:port/v1/Soa/jService?service=xxx&method=xxx&form=xxx

form是soa的参数的base64

soa参数是json数组的格式

比如add(1,2) 参数是[1,2]

PS:注意php文件名大小写要和路径一致

二、连接数据库

1.安装mysql

sudo apt-get install mysql-server

sudo apt-get install mysql-client

sudo apt-get install libmysqlclient-dev

安装成功后可以通过下面的命令测试是否安装成功:

sudo netstat -tap | grep mysql

现在设置mysql允许远程访问,首先编辑文件/etc/mysql/mysql.conf.d/mysqld.cnf:

sudo vi /etc/mysql/mysql.conf.d/mysqld.cnf

注释掉bind-address = 127.0.0.1

保存退出,然后进入mysql服务,执行授权命令:

进入数据库,默认密码123456

mysql -uroot -p

grant all on *.* to root@'%' identified by '你的密码' with grant option;

flush privileges;

然后执行quit命令退出mysql服务,执行如下命令重启mysql:

service mysql restart

这样,我们的数据库就可以被远程连接了。

2.修改php.ini

sudo docker ps

找到docker中运行的php

308ab80dbc40b7ebb82cfa65638c9f81.png

1d778593e84d = xxxxxxxx

docker exec -it xxxxxxxxxx /bin/bash

cd app/program/php-7.1.8/conf/

eb6709fdf9dc4bb5610978f030c48b57.png

修改php.ini中的default.socket

查询default.socket相当于Ctrl+F,按N下一行

/default.socket

pdo_mysql.default.socket =/var/run/mysqld/mysqld.sock

mysqli.default_socket =/var/run/mysqld/mysqld.sock

e184fcf3cdb2b2c156ae250b04c323ee.png

将扩展打开 去掉这5个前边的分号

b4585c1633d216acd3d57a2a36432906.png

保存退出。

在数据库中运行这两个即可连接数据库

$ sudo mysql -u root # I had to use "sudo" since is new installation

mysql> USE mysql;

mysql> UPDATE user SET plugin='mysql_native_password' WHERE User='root';

mysql> FLUSH PRIVILEGES;

mysql> exit;

$ service mysql restart

$ sudo mysql -u root # I had to use "sudo" since is new installation

mysql> USE mysql;

mysql> CREATE USER 'YOUR_SYSTEM_USER'@'localhost' IDENTIFIED BY '';

mysql> GRANT ALL PRIVILEGES ON *.* TO 'YOUR_SYSTEM_USER'@'localhost';

mysql> UPDATE user SET plugin='auth_socket' WHERE User='YOUR_SYSTEM_USER';

mysql> FLUSH PRIVILEGES;

mysql> exit;

$ service mysql restart

连接数据库代码:

2cffcf3c36677d7543d2ed62d747d60d.png

8f900a89c6347c561fdf2122f13be562.png

961ddebeb323a10fe0623af514929fc1.png

classMysqlConectService

{public functionconnect(){//$serverName = '10.10.30.161';

// $databaseName = 'test';

// $serverPort = '3306';

// $username = 'root';

// $password = '123456';

//if (class_exists('PDO')) {

// echo "pdo";

// try {

// $conn = new PDO("mysql:host=" . $serverName . ";dbname=" . $databaseName . ";port=" . $serverPort, $username, $password);

// if ($conn->connect_error) {

// return 'error';

// }else{

// return 'success';

// }

// } catch (PDOException $e) {

// echo 'Connection failed: ' . $e->getMessage();

// }

//}

$db =db();$db->tableName = 'levelconfig';$where['level_id'] = 1;return $db->find($where);

}

}

MysqlConectService

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/我家小花儿/article/detail/335927
推荐阅读
相关标签
  

闽ICP备14008679号