騰訊雲數據庫mysql擴容步驟(mysql擴容方案)

本文目錄一覽:

騰訊雲服務器怎麼搭建支持外網訪問的mysql數據庫

使用第三方一鍵php包的配置。win服務器還是linux 服務器都可以在三方面板中成功配置出可視化操作界面,然後一鍵部署php環境。

接下去就是這些步驟了:

1、註冊域名

2、選購服務器

3、網站備案

4、搭建網站環境

5、安裝網站程序

6、充實網站內容

數據庫操作就是這麼來的。因為這方面內容較多,留言或到博客找相關內容,老魏寫過不少詳細的內容,可以幫助入門。

騰訊雲如何正確配置mysql

配置mysql只需要安裝這個程序就可以的。如果是和程序結合起來,那麼就要安裝 lnmp一鍵包,這裡面自帶的相應的程序,比較省事

如何進行mysql的動態擴容和縮容

mysql在線擴容和縮容一般涉及到的內容,主要包括三個方面,1.在線也就意味着需要把增量的數據重新分布到新的拓撲結構中,我們一般稱做增量複製,2.原有的數據需要一條不漏的掃出來重新分布到新的拓撲結構中,這個一般叫做全量複製,3.全量做完,增量正在同步,把應用的數據路由拓撲切到新的路由拓撲上來,並且做到無數據丟失,這個我們叫做停寫切換。做好這三個方面的工作,能夠達到的效果就是應用在最後切換數據分布拓撲的時刻,只要停寫非常短的時間(秒級別)就能夠做到無數據丟失的擴容和縮容。

增量同步一般有2種方式,一種是應用端或者數據庫前端做trigger,記錄變更數據的特徵值log(比如pk,sharding key),然後異步複製到新的拓撲結構中。另外一種方式是通過分析mysql的binlog再進行不同數據拓撲的複製。兩者本質上來說應該是一樣的,後者可能更加簡便,並且對應用無侵入,前者雖然也能夠做到,實際實現或者推廣和操作上都有不少阻力,最起碼解析binlog方式是mysql一上去,更新的log已經天然存在與binlog中了。

增量同步的兩種方式如果要考慮到同步的可伸縮性(也就是多台機器可以同時消費相同的變更日誌),需要在原數據中添加數據的版本信息防止更新亂序,或者通過唯一鍵進行複製機器的sharding,也就是不同進程(線程)同時消費相同的更新日誌,必須讓同一條記錄的更新落在同一個線程裡面,如果還需要保證複製的事務,那麼實現會非常複雜,一般不會去支持多線程下複製的事務。

全量複製,也就是掃描需要複製的表的數據進行重新分布,主要存在的問題是複製速度和對數據庫的寫入壓力的矛盾,其實能夠做到整個拓撲連數據庫都全部換掉,來達到對正在使用數據庫的0影響,這個是一種可行的方案,另外是分時段調整複製線程數,一般單線程複製對於數據庫的影響不會很大,在凌晨再轉換成多線程方式達到提速的目標。

擴容或者縮容在最後階段如何切換,這個涉及到的問題主要是如何避免新更新進來以至於增量沒完沒了,方式有很多,最簡單的方法就是停掉應用,一般時間只有幾分鐘是可以接受的。另外一種是邏輯停寫,因為我們遷移的時候是有一個規則去重新散列數據,也就是如果新的規則和舊的規則兩者算出來的結果不一致,那麼這個數據就是需要被遷移的,如果在停寫的時刻,向前端拋錯即可。邏輯停寫最大的好處就是避免PE的介入,並且配合動態的數據路由數據推送,可以完全避免重新發布達到擴容或者縮容,這個就是真正的在線擴容,停寫不可避免(等待延遲的增量同步完成),但是不影響讀。

數據擴容或者縮容,我們覺得不應該排入業務的開發日程中,而是由數據管理團隊對應用透明地進行這種操作,最後介入的人員只是DBA而已。但是不像一些nosql一樣按容量或者完全透明的split,數據庫的sharding還是按照應用的數據特性(pk,user_id,gmt_create等等不同字段,自選策略)進行sharding,應用知道他們的某條數據具體存在哪個機器哪張表上,這個無論對於開發還是測試或者DBA都是一件不錯的事情。

js如何連接和操作騰訊雲mysql數據庫

首先是登陸騰訊雲,登陸之後可以領取新手禮包,如圖

進入雲產品-數據庫-CDB for MYSQL-立即選購,選購最低配的可用禮包抵扣使用一個月,購買完成

主頁-右上角產品管理-使用中的數據庫,這時我們會看見一個實例,首先我們進入管理頁面對實例進行一些基本的設置

實例名可以隨意更改,外網地址必須開啟,否則我們就不能在自己的項目中和本地訪問雲數據庫。進入賬號管理頁面修改自己的root密碼,然後點擊右上角的登錄數據庫

登陸完成之後如下圖

這個和本地客戶端操作基本相同,我就不詳細闡述了

   二、使用一個demo來說明如何操作雲mysql數據庫

1.在實例上上新建一個為nodejs的數據庫,然後新建一個為employee的表,新建四個字段 name  sex   age   email除了年齡為int其它的全部為varchar格式

2.新建一個TimLiu的文件夾,打開cmd,cd TimLiu, 初始化項目npm init ,按照它的提示一步一步的操作即可,安裝mysql模塊,npm insitall mysql, 這個模塊的作用主要是連接mysql數據庫。

3.新建一個model.js 文件,

   var mysql = require(‘mysql’);

   var connection = mysql.createConnection({

           host:”,

           user:’root’,

           password:’123abc’,

           database:’ nodejs’,

           port:6445

          })

connection.connect();

這裡的host為我們在騰訊雲上開通的外地址,端口號也是在外網地址裡面,注意要把外網地址寫分開,用戶為默認的管理員用戶,密碼為我們在雲平台上設置的密碼,數據庫為我們創建的nodejs數據庫。

接下來我們對數據庫進行增刪改查操作

/**

* 增加員工

*/function addEmployee(){

   var employeeInsertSql = ‘INSERT INTO employee(name,sex,age,email) VALUES(?,?,?,?)’;

   var employeeInsertSql_Params = [‘Tim’,’男’,22,’18818216454@163.com’]

   connection.query(employeeInsertSql,employeeInsertSql_Params,function(err,result){

       if(err) console.log(‘[INSERT ERR]-‘,err.message);

       console.log(result);

   }) }addEmployee()

 }

/**

* 更新員工

*/

function insertEmployee(){

   var employeeUpdateSql = “UPDATE employee SET name = ? WHERE age =?”;

   var employeeUpdateSql_Params = [‘Peter’,22];

   connection.query(employeeUpdateSql,employeeUpdateSql_Params,function(err,result){

       if(err) console.log(‘[UPDATE ERR]-‘,err.message);

       console.log(result);

   })}

insertEmployee();

/**

*查詢員工

*/  function getEmployee(){

   var employeeGetSql = “SELECT * FROM employee”;

   connection.query(employeeGetSql,function(err,result){

       if(err) console.log(‘[SELECT ERR]-‘,err.message);

       console.log(result);

   })}

getEmployee();

/**

*刪除員工

*/  function deleteEmployee(){

   var employeeDeleteSql = “DELETE employee WHERE name = ?”;

   var employeeDeleteSql_Params = ‘Peter’;

   connection.query(employeeDeleteSql,employeeDeleteSql_Params,function(err,result){

       if(err) console.log(‘[DELETE ERR]-‘,err.message);

       console.log(result);

   })

   }deleteEmployee();

這樣我們就可以愉快的操作數據庫了

如果大家想把項目更模塊化操作,可在model下面新建一個employee_two.js,代碼如下

var mysql = require(‘mysql’);var connection = mysql.createConnection({

   host:”,

   user:’root’,

   password:”,

   database:’nodejs’,

   port:})connection.connect();/**

* 增加員工

* @param {String} employee

* @param {Function} callback

*/exports.addEmployee=function(employee,callback){

   var employeeInsertSql = ‘INSERT INTO employee(name,sex,age,email) VALUES(?,?,?,?)’;

   var employeeInsertSql_Params = [employee.name,employee.sex,employee.age,employee.email]

   connection.query(employeeInsertSql,employeeInsertSql_Params,callback)}/**

* 更新員工

* @param {String} employee

* @param {Function} callback

*/exports.updateEmployee = function(name,age){

   var employeeUpdateSql = “UPDATE employee SET name = ? WHERE age =?”;

   var employeeUpdateSql_Params = [‘Peter’,22];

   connection.query(employeeUpdateSql,employeeUpdateSql_Params,function(err,result){

       if(err) console.log(‘[UPDATE ERR]-‘,err.message);

       console.log(result);

   })}/**

* 查詢員工

*

*/exports.getEmployee = function(){

   var employeeGetSql = “SELECT * FROM employee”;

   connection.query(employeeGetSql,callback)}/**

* 刪除員工

* @param {String} name

*/exports.deleteEmployee = function(name){

   var employeeDeleteSql = “DELETE employee WHERE name = ?”;

   var employeeDeleteSql_Params = ‘Peter’;

   connection.query(employeeDeleteSql,employeeDeleteSql_Params,callback)

   }再在根目錄下新建index.js,代碼如下var db = require(‘./model/employee_two’);//增加員工var employee = {

   name:’lisa’,

   age:22,

   sex:”女”,

   email:’99533212@qq.com’}db.addEmployee(employee,function(err,result){

   if(err) console.log(“[INSERT err]-“,err.message)

   console.log(result);})//刪除員工db.deleteEmployee(‘Peter’,function(err,result){

   if(err) console.log(“[DELETE err]-“,err.message)

   console.log(result);})//更新員工db.updateEmployee(‘Tim’,23,function(err,result){

   if(err) console.log(“[UPDATE err]-“,err.message)

   console.log(result);})//查詢員工db.getEmployee(function(err,result){

   if(err) console.log(“[GET err]-“,err.message)

   console.log(result);})

原創文章,作者:AO6TI,如若轉載,請註明出處:https://www.506064.com/zh-hant/n/128413.html

(0)
打賞 微信掃一掃 微信掃一掃 支付寶掃一掃 支付寶掃一掃
AO6TI的頭像AO6TI
上一篇 2024-10-03 23:25
下一篇 2024-10-03 23:25

相關推薦

  • Java騰訊雲音視頻對接

    本文旨在從多個方面詳細闡述Java騰訊雲音視頻對接,提供完整的代碼示例。 一、騰訊雲音視頻介紹 騰訊雲音視頻服務(Cloud Tencent Real-Time Communica…

    編程 2025-04-29
  • Python 常用數據庫有哪些?

    在Python編程中,數據庫是不可或缺的一部分。隨着互聯網應用的不斷擴大,處理海量數據已成為一種趨勢。Python有許多成熟的數據庫管理系統,接下來我們將從多個方面介紹Python…

    編程 2025-04-29
  • KeyDB Java:完美的分布式高速緩存方案

    本文將從以下幾個方面對KeyDB Java進行詳細闡述:KeyDB Java的特點、安裝和配置、使用示例、性能測試。 一、KeyDB Java的特點 KeyDB Java是KeyD…

    編程 2025-04-29
  • Python初學者指南:第一個Python程序安裝步驟

    在本篇指南中,我們將通過以下方式來詳細講解第一個Python程序安裝步驟: Python的安裝和環境配置 在命令行中編寫和運行第一個Python程序 使用IDE編寫和運行第一個Py…

    編程 2025-04-29
  • openeuler安裝數據庫方案

    本文將介紹在openeuler操作系統中安裝數據庫的方案,並提供代碼示例。 一、安裝MariaDB 下面介紹如何在openeuler中安裝MariaDB。 1、更新軟件源 sudo…

    編程 2025-04-29
  • 利用Java SDK發送騰訊雲短信

    Java SDK是一種利用Java語言編寫的軟件開發工具包,是Java開發中非常重要的一環。下面將介紹如何使用Java SDK發送騰訊雲短信。 一、引入SDK依賴 首先,在你的Ja…

    編程 2025-04-29
  • 數據庫第三範式會有刪除插入異常

    如果沒有正確設計數據庫,第三範式可能導致刪除和插入異常。以下是詳細解釋: 一、什麼是第三範式和範式理論? 範式理論是關係數據庫中的一個規範化過程。第三範式是範式理論中的一種常見形式…

    編程 2025-04-29
  • 正五邊形畫法步驟圖解

    正五邊形是一種經典的幾何圖形,其獨特的構造方式給它帶來了無限的美感和藝術價值。本篇文章將從多個方面詳細闡述正五邊形的畫法步驟圖解,幫助您輕鬆get到繪製正五邊形的竅門。 一、構造正…

    編程 2025-04-29
  • 如何在Spring Cloud中整合騰訊雲TSF

    本篇文章將介紹如何在Spring Cloud中整合騰訊雲TSF,並提供完整的代碼示例。 一、TSF簡介 TSF (Tencent Serverless Framework)是騰訊雲…

    編程 2025-04-29
  • leveldb和unqlite:兩個高性能的數據庫存儲引擎

    本文將介紹兩款高性能的數據庫存儲引擎:leveldb和unqlite,並從多個方面對它們進行詳細的闡述。 一、leveldb:輕量級的鍵值存儲引擎 1、leveldb概述: lev…

    編程 2025-04-28

發表回復

登錄後才能評論