変奏現実

パソコンやMMORPGのことなどを思いつくまま・・・記載されている会社名・製品名・システム名などは、各社の商標、または登録商標です。

この画面は、簡易表示です

おっとっと

[MS-Office]32bit?,64bit?

MS-Office 365をインストールすると32bit版か64bit版のどっちが入るのか?

どうやら32bit版のOfficeをインストール済みのPCにインストすると32bitになり、Officeが入っていない64bit版のWindowsでは64bit版が自動的に入るようだ。

32か64か?の確認は、ファイル⇒アカウント⇒***のバージョンの「ボタン」を押すと、ダイアログの上の右あたりに ***ビットって書いてある。

とりあえず、メインPCは古いバージョンから使い続けているので32bit、サブPCにインストしたら64bitになった。

そうなると、VBAからのWindowsのAPIの呼び方が変わるので

Public Declare PtrSafe Sub SubName Lib "LibName" Alias "AliasName" (argument list)

にしないといけないが、32bit版だと ptrSafe は未定義なので

#if WIN64 then
Public Declare PtrSafe Sub SubName Lib "LibName" Alias "AliasName" (argument list)
#else
Public Declare Sub SubName Lib "LibName" Alias "AliasName" (argument list)
#endif

とコンパイル・オプションで切り替えが必要。

ODBCでデータベースに繋いでいると、更に面倒なことになる。

32bit版のWindows10は今まで通りで、
1.データベースのODBCドライバを32bit版をインストして、
2.C:\Windows\System32\dbcconf.exeで登録するBATファイルを作る。

しかし、64bit版のWindows10は、ODBCが32と64の両方ある。Officeが32bit版ならODBCも32bit版、64bit版ならODBCも64bit版になるようだから、どっちに転がるか判ったものではないので、

1.データベースのODBCドライバを32と64bitの両方をインスト。
2.C:\Windows\System32\odbcconf.exeで登録するBATファイルを作る。
3.2のBATファイルのSystem32をSysWOW64したODBC-32bit専用を作る。
4.とりあえず、2と3の両方を管理者モードで実行しておく。

細かい事だけど、
C:\Windows\System32\odbcconf.exeがメモリに残骸として残っている間は、
C:\Windows\SysWOW64\odbcconf.exeと指定しても、
System32の方が動いてしまう情けないシロモノなので、
cd C:\Windows\SysWOW64 と
odbcconf.exe xxxx に分けた方がいい。
※パスが通っている逆もしかり。

データソース名は32bitと64bitで重複しても気にならない様なので、こうしておけば、メインPCのOfficeが急に64ビット版に変わってもなんとかなるだろう。

ちょっと変な気がするけど、SysWOW64は、64bitのWindowsで32bitのEXEを実行するためのモノが入っているので、ここのdbcconf.exeを使うと、32ビット用のODBCの設定をやってくれる。
参考:WikepediaのWOW64

いづれ、メインPCがクラッシュすれば、32bit版は消滅するハズだ。

しかし、これがエンタープライズなWindows環境なら、いくら新PCであっても、32bit版が100年くらい生きながらえる可能性は高い。



[VSC]node.js デバッグ

サーバで、foreverをグローバルでインストールしコマンドラインから使える様にする。

$ npm install forever -g
$ forever --version
v3.0.0

デバッグの準備

$ cd {node.jsアプリのフォルダ}
$ forever -c 'node --inspect=0.0.0.0:9229' app.js
warn:    --minUptime not set. Defaulting to: 1000ms
warn:    --spinSleepTime not set. Your script will exit if it does not stay up for at least 1000ms
Debugger listening on ws://0.0.0.0:9229/ad7164d6-5cb7-43bb-9585-7c95c6d24e28
For help, see: https://nodejs.org/en/docs/inspector

アプリがlisenに成功したら標準出力に
app listening on port http://{サーバー名}:{ポート} !
と表示させると便利。

Visual Studio Code の方の「実行」⇒「構成の追加」から
{} Node.js :Attach to remote program を選択し
lanuch.jsに追加されたブロックに
 ”address”: {サーバ名}
 ”port”: 9229
と編集して、【実行】すると、

(node:22749) [INSPECTOR_ASYNC_STACK_TRACES_NOT_AVAILABLE] Warning: Warning: Async stack traces in debugger are not available on 32bit platforms. The feature is disabled.

と出てくるので、lanuch.jsのAttach to remote programに設定を追加。

"showAsyncStacks": false

適当にソースでブレークポイントも追加しても〇になるので無効。
しかし、アプリの出力はサーバーのコンソールとデバッグコンソールの両方に表示され、VSCから再起動も出来る。

デバッグコンソールに何故かconsole.logしたソースのリンクが貼ってある。

これをクリックするとデバッグ中のプロセスと連携しているソースが表示されるので、ブレークポイントを設定できる。

しかし、次にその場所に来た場合に一時停止になる仕組みなので、
事前にブレークポイントを設定して実行!という訳にはいかないが、大抵のことはコレで十分だろう。

VSCからまだコミットが出来ないので git push も変だ。

OpenSSH Authentication Agentを自動起動
> ssh-agent
> ssh-add
Enter passphrase for C:\Users\***/.ssh/id_rsa: {パスワード}
Identity added: C:\Users\***/.ssh/id_rsa (***@********)

まですると、コマンドラインからは git pushできる。
VSCは待機中になってしまう。



[GIT]インストール

インストールしてみた。

$ sudo apt-get install git-all
$ git --version
git version 2.1.4
$ git config --global user.name "xxxx yyy zzzzzzz"
$ git config --global user.email xxxx@yyyy.zzz
$ git config --list
user.name=xxxx yyy zzzzzzz
user.email=xxxx@yyyy.zzz
core.repositoryformatversion=0
core.filemode=true
core.bare=false
core.logallrefupdates=true
$ mkdir /home/*****/www.git
$ cd /home/*****/www.git
$ git init --bare --shared

作業フォルダを作り、ベアと連携

$ mkdir <ソースのプロジェクトのフォルダ>
$ cd <ソースのプロジェクトのフォルダ>
$ git init
Initialized empty Git repository in /home/*****/*****/.git/
$ git clone /home/*****/www.git

コードを入れ、管理対象を追加。

$ git add *
$ git commit -m 'init'
いっぱい流れる

コピってみる。

$ mkdir /home/*****/test
$ cd /home/*****/aaa
$ git clone /home/*****/www.git 

WindowsのPCにもコピってみる。
Git-2.27.0-64-bit.exeを初期設定で【Next >】ボタンを押してインストールすると何故か?コマンドラインから使えないので、コンポーネントは全振りにする。

適当なフォルダを作って、cloneすると

C:\適当なフォルダ>git clone {ユーザ名}@{ホスト名}:{ベアなリポジトリィのフルパス}
Cloning into 'www'...
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@    WARNING: REMOTE HOST IDENTIFICATION HAS CHANGED!     @
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
IT IS POSSIBLE THAT SOMEONE IS DOING SOMETHING NASTY!
Someone could be eavesdropping on you right now (man-in-the-middle attack)!
It is also possible that a host key has just been changed.
The fingerprint for the ECDSA key sent by the remote host is
SHA256:*********************************************.
Please contact your system administrator.
Add correct host key in /c/Users/****/.ssh/known_hosts to get rid of this message.
Offending ECDSA key in /c/Users/****/.ssh/known_hosts:1
ECDSA host key for {ホスト名} has changed and you have requested strict checking.
Host key verification failed.
fatal: Could not read from remote repository.

Please make sure you have the correct access rights
and the repository exists.

(;゚Д゚)オレシラナイ と云うので観なかったことにする。

ssh-keygen -R {ホスト名}
C:\適当なフォルダ>git clone {ユーザ名}@{ホスト名}:{ベアなリポジトリィのフルパス}
Cloning into 'www'...
The authenticity of host '{ホスト名} ({ホスト名})' can't be established.
ECDSA key fingerprint is SHA256:*********************************************.
Are you sure you want to continue connecting (yes/no/[fingerprint])? yes
Warning: Permanently added '{ホスト名}' (ECDSA) to the list of known hosts.
{ユーザ名}@{ホスト名}'s password:{パスワードを入れる}
remote: Counting objects: 2148, done.
remote: Compressing objects: 100% (1663/1663), done.
remote: Total 2148 (delta 376), reused 2148 (delta 376)
Receiving objects: 100% (2148/2148), 20.27 MiB | 39.77 MiB/s, done.
Resolving deltas: 100% (376/376), done.
Updating files: 100% (2611/2611), done.

見てみると

C:\適当なフォルダ>dir
 ドライブ C のボリューム ラベルは ボリューム です
 ボリューム シリアル番号は ****-**** です

 C:\適当なフォルダ> のディレクトリ

2020/07/28  11:00    <DIR>          .
2020/07/28  11:00    <DIR>          ..
2020/07/28  11:01    <DIR>          www
               0 個のファイル                   0 バイト
               3 個のディレクトリ  568,894,787,584 バイトの空き領域

なぜか、www フォルダが出来、その中にソースが入っている。

とりあえず、サーバにあるNode.jsのアプリのソースをVisual Studio Codeで
デバッグする準備が出来た。

あ、SJISのファイルが、コンバートしたので、アップしてみる。

$ git commit -m 'memo utf8' -a
$ git push -u origin master

Windowsに取り込む

C:\適当なフォルダ> git pull
{ユーザ名}@{ホスト名}'s password:{パスワードを入れる}
remote: Counting objects: 3, done.
remote: Compressing objects: 100% (3/3), done.
remote: Total 3 (delta 2), reused 0 (delta 0)
Unpacking objects: 100% (3/3), 645 bytes | 1024 bytes/s, done.
From {ホスト名}:/home/****/www
   5016d20..c2a658f  master     -> origin/master
Updating 5016d20..c2a658f
Fast-forward
 "\343\203\241\343\203\242.txt" | 42 +++++++++++++++++++++---------------------
 1 file changed, 21 insertions(+), 21 deletions(-)

ps. Visual Studio Code でGithubみたいに画面のボタンからgit push したい場合。

面倒だけど、方法はあった。

以下、参考にした記事。

7.14 Git のさまざまなツール – 認証情報の保存

4.3 Gitサーバー – SSH 公開鍵の作成

gitのリモートプライベートリポジトリを公開鍵認証を使って環境構築する

この記事の通りにやればいいはず。

諸所の事情によりサブシステムをまともに使えないメインPCはこうなった。

  1. どこかのフォルダで右クリックし、Git Bash Hereをクリック。
    ここならパスフレーズを省略した公開鍵を作成できるハズ。
    $ ssh-keygen
    Enter file in which to save the key (****¥.ssh¥id_rsa): {ENTER}
    Enter passphrase (empty for no passphrase): {ENTER}
    Enter same passphrase again: {ENTER}
  2. WinScp等でC:¥users¥{ユーザ名}¥.sshフォルダのid_rsa.pubをgitサーバーのユーザの~/.sshフォルダにコピーする。
    ※サーバに~/.sshが無かったら作成する。勿論オーナはユーザ名。
    ※左パネルのid_rsa.pubファイルを右パネルの.sshフォルダにドラッグ
  3. WinScp等で送った公開キーファイル名をauthorized_keysに変える。
    ※右パネルのid_rsa.pubファイル名をauthorized_keysに書き換える。

多分、これでOKなハズ。

これで、sshコマンドもパスワード無しでログインできてお手軽だが、sudoする時は時々パスワードを入力しないといけない。
しかし手元のTeraTermは無関係で、しかもこれは認証情報を一切覚えられないので、起動の度に秘密鍵を指定するか、設定を保存し起動の度に「設定ファイル読み込み(R)」をするかの2択しかない。

とりあえず、この方法を試した後は必要な時だけSSHサービスを開けるか、
~/.ssh/authorized_keysを別の名前にしておく必要があるね。



[node.js]v12.18.3

事前準備

$ sudo apt-get install build-essential libssl-dev

gccのインストールは、https://ssiscirine.moe.hm/?p=28263 参照

pythonのインストールは、ReadyNasの管理画面のアプリからインストール。

ソースのダウンロード

$ sudo wget https://nodejs.org/dist/v12.18.3/node-v12.18.3.tar.gz
$ tar xvzf node-v12.18.3.tar.gz
$ cd node-v12.18.3

環境変数の追加 ※以下、sudo -E で追加した環境変数が引き継がれる様にすること。

$ export CCFLAGS='-march=armv7-a'
$ export CXXFLAGS='-march=armv7-a'

makefile作成

sudo -E ./configure

ビルド

date; sudo -E make -j8 ; date;

インストール
しかし、コンパイルしまくりなので、上か下だけで良いような気がした。

$ date; sudo -E make install ; date;

と云うか、この手のパッケージは環境を破壊しやすく、再構築の時は長~いビルド時間(この手のNASでは数時間)を省いてインストールしたくなるものだと思うんだけどね。(笑)

と書いたら install は2分ほどで終わった。
もう一度 install しても2分ほどで終わった。

ビルドしたイメージをtar圧縮化して、再構築したNASで解凍した際にpythonをインストし忘れたがinstall自体は動き続けたので、何か変なコトが起こったかもしれない。



[gcc]10.2.0のビルド

ビルドすると容量がかなり大きいので rootではなく、
管理者のアカウントを使う。
sudoも入っていないのでインストし、管理者をsudoグループに加入。

$ su root -
# apt-get install sudo
# usermod -G sudo ${development-user}
# exit

まずは、開発用の必須パッケージをインスト。

$ sudo apt-get install build-essential
$ sudo apt-get install libssl-dev

gccのソースをダウンロードして解凍する。


$ wget http://ftp.tsukuba.wide.ad.jp/software/gcc/releases/gcc-10.2.0/gcc-10.2.0.tar.gz
$ tar xzf gcc-10.2.0.tar.gz
$ cd gcc-10.2.0

gccのビルドに必要なパッケージ類をインスト。

$ ./contrib/download_prerequisites

2020-07-25 01:37:12 URL:http://gcc.gnu.org/pub/gcc/infrastructure/gmp-6.1.0.tar.bz2 [2383840/2383840] -> "./gmp-6.1.0.tar.bz2" [1]
2020-07-25 01:37:14 URL:http://gcc.gnu.org/pub/gcc/infrastructure/mpfr-3.1.4.tar.bz2 [1279284/1279284] -> "./mpfr-3.1.4.tar.bz2" [1]
2020-07-25 01:37:15 URL:http://gcc.gnu.org/pub/gcc/infrastructure/mpc-1.0.3.tar.gz [669925/669925] -> "./mpc-1.0.3.tar.gz" [1]
2020-07-25 01:37:17 URL:http://gcc.gnu.org/pub/gcc/infrastructure/isl-0.18.tar.bz2 [1658291/1658291] -> "./isl-0.18.tar.bz2" [1]
gmp-6.1.0.tar.bz2: OK
mpfr-3.1.4.tar.bz2: OK
mpc-1.0.3.tar.gz: OK
isl-0.18.tar.bz2: OK
All prerequisites downloaded successfully.

makefileの設定。

$ mkdir build
$ cd build/
$ ../configure --enable-languages=c,c++ --prefix=/usr/local/gcc-10.2.0 --disable-bootstrap

それではビルド!

$ date; make; date
Sat Jul 25 12:21:24 JST 2020

※再ログイン後に反映されるので。ビルドの間に管理者やsudoのPATHの設定を変えておく。

$ vi ~/.bash_profile
export PATH=/usr/local/gcc-10.2.0/bin:$PATH
$ su -
# ls /etc/sudoers
-r--r----- 1 root root 669 Feb  2 08:23 /etc/sudoers
# chmod +w /etc/sudoers
# sudo vi /etc/ld.so.conf.d/arm-gcc-10.2.0.conf
Defaults        secure_path="/usr/local/gcc-10.2.0/bin:/usr...
# chmod -w /etc/sudoers
# gcc-10.2.0 configuration
/usr/local/gcc-10.2.0/lib
# exit

gccのビルドが無事終わったら、共有ライブラリィの設定を更新。

Sat Jul 25 15:11:22 JST 2020
$ date; sudo make install; date
Sat Jul 25 15:24:17 JST 2020
・・・
Sat Jul 25 15:25:40 JST 2020
$ sudo ldconfig
/sbin/ldconfig.real: /usr/local/gcc-10.2.0/lib/libstdc++.so.6.0.28-gdb.py is not an ELF file - it has the wrong magic bytes at the start.

/sbin/ldconfig.real: /usr/lib/libreadycloud.so.1 is not a symbolic link

おや?共有ライブラリィの設定がうまくいかない!!!

いや

# sudo gcc --version
gcc (GCC) 10.2.0
Copyright (C) 2020 Free Software Foundation, Inc.
This is free software; see the source for copying conditions.  There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.

gccはちゃんと動いてるから いいか?



[node.js]node.js 0.10.29は、どうでしょう?

# apt-get install nodejs
Reading package lists... Done
Building dependency tree
Reading state information... Done
The following additional packages will be installed:
  libc-ares2 libv8-3.14.5
The following NEW packages will be installed:
  libc-ares2 libv8-3.14.5 nodejs
0 upgraded, 3 newly installed, 0 to remove and 31 not upgraded.
Need to get 1,756 kB of archives.
After this operation, 6,476 kB of additional disk space will be used.
Do you want to continue? [Y/n] y
Get:1 http://mirrors.edge.kernel.org/debian jessie/main armel libc-ares2 armel 1.10.0-2+deb8u2 [66.0 kB]
Get:2 http://mirrors.edge.kernel.org/debian jessie/main armel libv8-3.14.5 armel 3.14.5.8-8.1 [1,074 kB]
Get:3 http://mirrors.edge.kernel.org/debian jessie/main armel nodejs armel 0.10.29~dfsg-2 [615 kB]
Fetched 1,756 kB in 0s (1,810 kB/s)
debconf: delaying package configuration, since apt-utils is not installed
Selecting previously unselected package libc-ares2:armel.
(Reading database ... 17076 files and directories currently installed.)
Preparing to unpack .../libc-ares2_1.10.0-2+deb8u2_armel.deb ...
Unpacking libc-ares2:armel (1.10.0-2+deb8u2) ...
Selecting previously unselected package libv8-3.14.5.
Preparing to unpack .../libv8-3.14.5_3.14.5.8-8.1_armel.deb ...
Unpacking libv8-3.14.5 (3.14.5.8-8.1) ...
Selecting previously unselected package nodejs.
Preparing to unpack .../nodejs_0.10.29~dfsg-2_armel.deb ...
Unpacking nodejs (0.10.29~dfsg-2) ...
Setting up libc-ares2:armel (1.10.0-2+deb8u2) ...
Setting up libv8-3.14.5 (3.14.5.8-8.1) ...
Setting up nodejs (0.10.29~dfsg-2) ...
update-alternatives: using /usr/bin/nodejs to provide /usr/bin/js (js) in auto mode
Processing triggers for libc-bin (2.19-18+deb8u10.netgear1) ...

# nodejs --version
v0.10.29

# apt-get install npm

# npm install mysql
Segmentation fault
!pythonのインストを忘れていたせい
# npm install --global mysql
mysql@2.18.1 /usr/local/lib/node_modules/mysql
tqq sqlstring@2.3.1
tqq safe-buffer@5.1.2
tqq bignumber.js@9.0.0
mqq readable-stream@2.3.7 (process-nextick-args@2.0.1, inherits@2.0.4, util-deprecate@1.0.2, string_decoder@1.1.1, isarray@1.0.0, core-util-is@1.0.2)
# npm install --global http-server
npm WARN engine http-server@0.12.3: wanted: {"node":">=6"} (current: {"node":"0.10.29","npm":"1.4.21"})
npm WARN engine portfinder@1.0.27: wanted: {"node":">= 0.12.0"} (current: {"node":"0.10.29","npm":"1.4.21"})
npm WARN engine http-proxy@1.18.1: wanted: {"node":">=8.0.0"} (current: {"node":"0.10.29","npm":"1.4.21"})
Segmentation fault
!Node.jsが古すぎるらしい。


[MySQL]ODBC接続でフィールドの番号を振り直してみる

MySQLのAutoInc属性は0かNULLを設定した時に自動的に番号を振る機能なので、バックアップ・リストアを繰り返していると、気が付けば、数値が重複していたりする。
※UNIQUE KEYにしておけばそんなことは起きない(ハズ

そんな困った時は

SET @i := 0 ;
UPDATE テーブル名 SET フィールド名 = (@i := @i + 1) ;

なSQLをphpMyAdminから叩けば良いらしいんだけど、MS-ACCESSとかEXCELの【ボタン】から、ODBCでExecuteしてみると・・・・

エラる。

;の後に文字があるせいらしい。

試しにストアードプロシージャっぽく、

“BEGIN
SET @i := 0 ;
UPDATE テーブル名 SET フィールド名 = (@i := @i + 1) ;
END”

をExecuteすると、BEGIN…. 何ソレ美味しいの?状態。

仮にストアードプロシージャを作ったとしても

CALL 採番(’テーブル名’, ‘フィールド名’);

の様に直接パラメータは書けないので、@引数を使って

SET @p1=’テーブル名’;
SET @p2=’フィールド名’;
CALL 採番(@p1, @p2);

と呼ばないといけないらしい。てか、行数増えてるし・・・(汗

@変数を使うSQLをODBCで扱うのは、土台無理なんだろうか?

正解は、

1行づつやらせれば良い。

Dim sql(1) As String
sql(0) = “SET @i := 0 ;”
sql(1) = “UPDATE テーブル名 SET フィールド名 = (@i := @i + 1) ;”);

あるいは
Dim sql() as String
sql = split(“…….”, vbCrLf)

for idx =lbound(sql) to ubound(sql)
ds.Execute(sql(idx),dbSQLPassThrough)
next

2行目の処理時間は結構長い。

安易に・・・

Dim cnt As Integer
set rst = odbcConn.OpenRecordset(テーブル名)
Do While rst.EOF = false
rst.edit()
cnt = cnt+1
rst(フィールド名) = cnt
rst.update()
rst.MoveNext
Loop

な事をしてしまうと、レコードが少なければ数秒で終わるけど、全レコードの全フィールドを読み取る事になるので、何万レコードもあったら、何時間かかるか判らない。



DDL

データベースの設定用のスクリプトのこと。
データベースやテーブルの作成をGUIのツールで行うこともできるが、数が多いと操作が多くなりメンドクサイ。

よーく考えてみると、SQL形式でバックアップできるデータベースなら、
中身はSQLなんだから、その中の CREATE TABLE や CREATE INDEX を取り出せば、テーブルを作り直すSQLファイルを作れるはず。

しかし、SQL形式でバックアップできないなら、CREATE TABLEを作成するSQLを作ればいい。

MySQLの場合は、
SHOW COLUMNS FROM テーブル名
でテーブルのカラムの情報が見れる。

FieldTypeNullKeyDefaultExtra
link_idbigint(20) unsignedNOPRINULLauto_increment
link_urlvarchar(255)NO
link_namevarchar(255)NO
link_imagevarchar(255)NO
link_targetvarchar(255)NO
link_descriptionvarchar(255)NO
link_visiblevarchar(20)NOMULY
link_ownerbigint(20) unsignedNO1
link_ratingint(11)NO0
link_updateddatetimeNO0000-00-00 00:00:00
link_relvarchar(255)NO
link_notesmediumtextNONULL
link_rssvarchar(255)NO
link_categorybigint(20)NO0
SHOW COLUMNS FROM wp_links

EXCELに貼る元ネタはとしてはいいけど、これからCREATE TABLE を作るのは面倒。
SHOW CREATE TABLE テーブル名
で、直接DDLがゲットできる。

TableCreate Table
wp_linksCREATE TABLE `wp_links` (
 `link_id` bigint(20) unsigned NOT NULL AUTO_INCREMENT,
 `link_url` varchar(255) COLLATE utf8mb4_unicode_ci NOT NULL DEFAULT ”,
 `link_name` varchar(255) COLLATE utf8mb4_unicode_ci NOT NULL DEFAULT ”,
 `link_image` varchar(255) COLLATE utf8mb4_unicode_ci NOT NULL DEFAULT ”,
 `link_target` varchar(25) COLLATE utf8mb4_unicode_ci NOT NULL DEFAULT ”,
 `link_description` varchar(255) COLLATE utf8mb4_unicode_ci NOT NULL DEFAULT ”,
 `link_visible` varchar(20) COLLATE utf8mb4_unicode_ci NOT NULL DEFAULT ‘Y’,
 `link_owner` bigint(20) unsigned NOT NULL DEFAULT 1,
 `link_rating` int(11) NOT NULL DEFAULT 0,
 `link_updated` datetime NOT NULL DEFAULT ‘0000-00-00 00:00:00’,
 `link_rel` varchar(255) COLLATE utf8mb4_unicode_ci NOT NULL DEFAULT ”,
 `link_notes` mediumtext COLLATE utf8mb4_unicode_ci NOT NULL,
 `link_rss` varchar(255) COLLATE utf8mb4_unicode_ci NOT NULL DEFAULT ”,
 `link_category` bigint(20) NOT NULL DEFAULT 0,
 PRIMARY KEY (`link_id`),
 KEY `link_visible` (`link_visible`)
) ENGINE=InnoDB AUTO_INCREMENT=33 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci
show create table wp_links

ORACLEの場合は
select DBMS_METADATA.getDDL(‘TABLE’, ‘テーブルの名前’);
でDDLがゲットできるらしい。



XRDPとWindows10の間でクリップボードが使えない等

ことがあったので調べてみた。まだ試してはいない。

3通りあった

まずはリモート接続の設定画面のローカルリソースでクリップボードを使える様にチェックが入っているか?

意外と忘れていることが多い。

ローカルコンピュータポリシーで
「コンピューターの構成」
 「管理用テンプレート」
   「Windowsコンポーネント」
   「リモートデスクトップサービス」
    「リモートデスクトップセッションホスト」
      「デバイスとリソースのリダイレクト」のトコで
「クリップボードのリダイレクトを許可しない」が「無効」になっている?
無効になっていなかったら「無効」にしてリモート接続しなおし。

メモリがギリギリだとDRP経由でクリップボードをやり取りするタスクがエラって仮死してる場合もあるらしい。

接続先のタスクマネージャの
「プロセス」タブに「RDPクリップボードモニタ」があったら、
※もしWindows7だったら「詳細」タブに「rdpclip.exe」が見当たるらしい。
「タスクを終了」し
「ファイル」
 「新しいタスクの実行」で
rdpclip.exe を起動する。

接続先がCentOSなら接続先には無いので、接続元を試すといいのかもしれない。

あと、XRDPは接続するPCに応じてセッションを増やすらしいので、接続を切る時はログアウトした方が良いかもしれない。

できれば、XRDPを再起動するといいだろう。

sudo systemctl restart xrdp
はできる様だが、
sudo service xrdp restart 2013年頃の記事
は無理らしい。
つまり古いバージョンはダメなんだろうね。

CentOSで「半角/全角」キーや「Windows+スペース」キーでかな漢字変換が動かないことがある。そんな場合は

画面右上のステータス・バーの右端で入力を切り替える。

アプリケーション
 システムツール
  設定で
言語と地域を選択し、入力ソースに、「日本語(xxx)」とかをメモって
再登録する。

とかショック療法が効くらしい。




top