วันจันทร์ที่ 28 ธันวาคม พ.ศ. 2563

ยกเลิกVisit is_cancel =1กรณีทำพลาด

 UPDATE  opd_visits o  SET o.is_cancel = 1

WHERE  o.VISIT_ID in ('0002400936'

,0002400937,0002400938,

0002400939,

0002400940,

0002400941,

0002400942

)

**************************

หาVisit

SELECT  o.REG_DATETIME, o.VISIT_ID ,c.cid, c.hn, o.is_cancel, o.staff_id

 FROM opd_visits o

 INNER JOIN cid_hn c ON o.hn = c.hn

  WHERE o.REG_DATETIME >= CURDATE() 

 AND o.STAFF_ID = 0341

หาVisitล่าสุดเปรียบเทียบกัน

 SELECT o.hn, o.visit_id, o.reg_datetime, MAX(o.VISIT_ID)as max_visit, max(o.REG_DATETIME)as  maxdate, o.STAFF_ID

FROM opd_visits o 

INNER JOIN cid_hn c ON o.hn = c.hn

WHERE o.REG_DATETIME >= CURDATE()

AND c.cid in ( SELECT cid from lab_import_fail)

AND o.STAFF_ID = 0341

GROUP BY c.CID


วันพุธที่ 23 ธันวาคม พ.ศ. 2563

yii2 basic กรณีใช้ gii ไม่ได้ นอกเหนือ localhost


Yii2 Gii Forbidden code 403 You are not allowed to access this page

 เปิด config/web.php

    $config['bootstrap'][] = 'gii';

    $config['modules']['gii'] = [

        'class' => 'yii\gii\Module',

'allowedIPs' => ['127.0.0.1', '::1', '192.168.200.*'],

#########################################################################

Yii2 advanced

config/maim.php

อบรมข้าราชการ 23-25 ธค 63

 รุ่น 24 สค.63 ส่งงานถึงเดือน กพ64

23 ธค 63
- E-Learning ต้องผ่าน
- อายุราชการ 10ปี ได้บำนาญ


วันอังคารที่ 22 ธันวาคม พ.ศ. 2563

CKEditor ทำให้เป็นLink Yii2

Yii2 ::::CKEditor  

_form.php

 <?= $form->field($model, 'description')->widget(CKEditor::className(), [

                        'options' => ['rows' => 6],

                        'preset' => 'basic',

                        // 'clientOptions' => [

                        //   'filebrowserUploadUrl' => Url::to(['/site/upload']),

                        // ]

                    ]) ?>


index.php

Field ที่ต้องให้แสดงเป็นลิงค์  ให้เพิ่ม เช่น detail

            [

'attribute' =>'detail', ##=ชื่อฟิวด์

'format'=>'html',  ##แสดงเป็นลิงค์

  ],


วันพุธที่ 9 ธันวาคม พ.ศ. 2563

จูน my.cnf

 ปรับลดความหน่วง  
-------------------------------------------------------------------------------------------------
เพิ่ม RAM 32G
innodb_buffer_pool_size = 25.6G

https://hosxp.net/smf2/index.php?topic=21706.0

สำหรับRam8G

-------------------------------------------------------------------------------------------------
การโอน ผมจะ backup แล้ว dump ตรงๆ จะเร็วกว่า การ initail import    แต่ต้องปิดระบบทั้งหมด 

oracle linux 6.0+ext4 +text mode +percona 5.5.10

น่าจะลดคร่าวๆ แบบนี้
key_buffer = 512M
max_allowed_packet = 512M
query_cache_size= 512M
max_connections=200    >>>> ตามจำนวน client ที่ connect  และเผื่อไว้  บ้าง

ลองปรับ
max_connection = 300 หรือ  250
query_cache = 128M หรือ 256M
read_ = 2M
read_rnd = 16M
sort_ = 2M
join_ = 6M

-----------------------------------------------------------------------------------------------

key_buffer =384M #เป็นการจองบัฟเฟอร์หน่วยความจำเอาไว้ สำหรับจัดเก็บข้อมูล
max_allowed_packet =1M #เป็นการกำหนดขนาดของแพ็กเก็จในการรับขส่งข้อมูล
table_cache =512 #เป็นหน่วยความจำแคช ค่าดีฟอล์ท 64

sort_buffer_size =2M #เป็นบัฟเฟอร์หน่วยความจำ สำหรับจัดเรียงผลข้อมูล
read_buffer_size =2M #เป็นหน่วยความจำสำหรับการอ่านบัฟเฟอร์ข้อมูลของตาราง myisam
read_rnd_buffer_size =8M #เป็นหน่วยความจำในการอ่านบัฟเฟอร์ข้อมูลของแถวที่ถูกจัดเรียง

mysiam_sort_buffer_size =64M #เป็นบัฟเฟอร์หน่วยความจำ สำหรับจัดเรียงข้อมูลโครงสร้าง myisam
thead_cache_size =8 #เป็นขนาดของเทรดแคชในการทำงาน
query_cache_size =32M 
#Try number of CPU*2 for thread_concurrency thread_concurrency =8 #เป็นขนาดของเทรดที่ให้ทำงานไปพร้อมๆกัน ขึ้นอยู่กับจำนวน CPU ถ้า server มี CPU 2 ตัว ให้ใส่ค่า 4 ถ้า server มี CPU 4 ตัว ให้ใส่ค่า 8


วันอังคารที่ 8 ธันวาคม พ.ศ. 2563

ปรับ Mysql ให้ใช้ cache เพื่อเพิ่มความเร็ว ขนาดRam8-16GB

*** จูน Mysql ให้ทำงานเร็วขึ้น ***  cpu 4 core

เพื่อความรวดเร็วในการนำค่าไปใช้ ผมรวบรวมให้แล้วครับ ตามนี้

max_connections=1000

innodb_file_per_table
innodb_thread_concurrency = 0
innodb_flush_log_at_trx_commit = 2
innodb_lock_wait_timeout = 50
innodb_flush_method=O_DIRECT
innodb_doublewrite=0
innodb_support_xa = 0
innodb_open_files = 2000
innodb_locks_unsafe_for_binlog=1
innodb_support_xa = 0
innodb_locks_unsafe_for_binlog = 1

อีก 2 ตัวที่ไม่ค่อยมีคนสนใจแต่ทำให้ MySQL ทำงานเร็วขึ้นครับ
ตัว1
innodb_flush_log_at_trx_commit=2

จะทำให้ MySQL เขียน Log ทุก 1 วินาที แทนที่จะทุก Transaction
ตัว2
max_heap_table_size = 128M

ช่วยให้บาง Query ทำงานได้เร็วขึ้นครับ

อีกตัวครับ
innodb_flush_method=O_DIRECT
จะปิดการทำงานของระบบ double buffering ของ MySQL ครับ (ทำให้ระบบโดยรวมเร็วขึ้น)

ตามด้วย

innodb_doublewrite=0

จะทำให้ innodb เขียนข้อมูลใน table space แค่ครั้งเดียว แทนที่จะเขียนสองครั้ง

***ถ้าเข้าจากเครื่องอื่นแล้วช้าอาจจะเกี่ยวกับการ resolve ชื่อและไอพี ให้ลองเพิ่ม skip-name-resolve ที่หัวข้อ[mysqld]
ปัญหามาซักพักกับการที่ MariaDB ดับไปเองบ้าง รีสตาร์ทบ่อยๆ บ้าง ปรับแก้ my.cnf ก็ไม่นิ่งซะทีจนไปเจอ Code แล้วเอามาปรับแก้ max_connections อีกทีจนนิ่งสนิท ตัวนี้จะเป็น

เมื่อใช้ไป1อาทิตย์ลองตรวจสอบ
**************************************************************************

วันพฤหัสบดีที่ 3 ธันวาคม พ.ศ. 2563

การทำRemote backup ผ่าน ssh โดยไม่ต้องใช้ Password

การทำ remote backup ผ่าน ssh โดยไม่ต้องใช้ Password กันนะครับ


ปกติในการใช้คำสั่ง ssh จาก host A ไป B  จะต้องใส่ password ทุกครั้ง ซึ่งหากเราต้องการตั้งเวลาให้ script ทำการสำรองข้อมูลอัตโนมัติ จะไม่สามารถทำได้ ครับ เพราะติดที่ password คราวนี้เราจะมาทำให้ ssh จาก Host A ไป B ไม่ต้องใส่ password ครับ

ขั้นตอนทั้งหมดทำที่ HOST A  (เป็น root)

1. ssh-keygen -t rsa   
 (ไม่ต้องใส่ passphrase  กด enter ผ่าน 2 ครั้ง)
2. ssh root@B mkdir -p .ssh
3. cat ~/.ssh/id_rsa.pub | ssh root@B 'cat >> .ssh/authorized_keys'

เสร็จ 3 คำสั่ง ครั้งต่อไป ก็สามารถใช้ ssh root@B ได้โดยไม่ต้องใส่ password ครับ