conoha に外部からアクセスできるMysqlを設置

conoha に外部からアクセスできるMysqlを設置してみました。

■Conohaへの接続

キー接続で設定し、sshで接続

ssh -i /home/xxxx/key-20xx-0x-xx-0x-xx.pem root@xxx.xxx.xxx.xxx

■バージョン
# cat /etc/os-release
NAME=”Ubuntu”
VERSION=”18.04.4 LTS (Bionic Beaver)”

■参考
https://qiita.com/houtarou/items/a44ce783d09201fc28f5

■インストール
# apt install mysql-server mysql-client

■インストールされたMysqlのバージン
# mysql –version
mysql Ver 14.14 Distrib 5.7.31, for Linux (x86_64) using EditLine wrapper

■サーバ状態確認
# service mysql status

■サーバ起動
# service mysql start

■サーバ停止
# service mysql stop

■rootユーザーの設定
# mysql_secure_installation

■DB作成

# mysql -u root
パスワード入力

show databases;

CREATE DATABASE [データベース名] CHARACTER SET utf8mb4;

show databases;

■ユーザと権限設定
grant all privileges on [データーベース名].* to ‘[ユーザ名]’@’%’ identified by ‘[password]’ with grant option;

すでに、ユーザがある場合は、権限付与
GRANT all ON [データーベース名].* TO '[ユーザ名]’@’%’;

全てのデータベースに権限付与する場合は
GRANT all ON *.* TO '[ユーザ名]’@’%’;
(一度行っておくと、DBを追加した時は、設定は不要となるがセキュリティーが緩くなる)

select user,host from mysql.user;

■ユーザで確認(ローカル)

exit

# mysql -u [新しいユーザ名] -p

show databases;

exit

■ユーザで確認(外部から確認)
同じ端末で

# mysql -h [ip] -u [新しいユーザ名] -p

(111)のエラー

exit

vim /etc/mysql/mysql.conf.d/mysqld.cnf

bind-address = 127.0.0.1
これを
#bind-address = 127.0.0.1
に変更

iで、編集モードに入り、カーソルで移動#を追加し
し[esc]:wqで、保存終了

# service mysql stop
# service mysql start

で、
# mysql -h [ip] -u [新しいユーザ名] -p
にて確認

サーバIP確認は
# ifconfig
eth0: flags=4163 mtu 1500
inet xxx.xxx.xxx.xxx netmask 255.255.254.0 broadcast xxx.xxx.xxx.xxx

確認ができたら
外部ツールから接続確認を行う

django.core.exceptions.ImproperlyConfigured: SQLite 3.8.3 or later is required (found 3.8.2)

Django 起動時に
django.core.exceptions.ImproperlyConfigured: SQLite 3.8.3 or later is required (found 3.8.2)

sqlite のバージョンアップ手順

https://qiita.com/rururu_kenken/items/8202b30b50e3bfa75821
を参考にして

wget https://www.sqlite.org/2020/sqlite-autoconf-3310100.tar.gz
tar xvfz sqlite-autoconf-3310100.tar.gz

cd sqlite-autoconf-3310100
./configure --prefix=/usr/local
make
sudo make install
sudo find /usr/ -name sqlite3

sudo mv /usr/bin/sqlite3 /usr/bin/sqlite3_old
sudo ln -s /usr/local/bin/sqlite3 /usr/bin/sqlite3

vim ~/.bashrc
export LD_LIBRARY_PATH=/usr/local/bin:$LD_LIBRARY_PATH

:wq

source ~/.bashrc

参考
https://teratail.com/questions/194159

python ftp text読み込み

python ftp text読み込みを作ってみる

x-serverで、フォルダーpublic_html/xxxx/data/にある
*.json
を取得

直接ファイルに落とす場合

from ftplib import FTP
import glob

ftp = FTP(
    "sv22xx.xserver.jp",
    "aaa@xxxx.xsrv.jp",
    passwd="xxxx"
)

def mid(text, n, m):
  return text[n-1:n+m-1]

items = ftp.nlst('/xxxx.xsrv.jp/public_html/xxxx/data/*.json')
print(items)
for row in items:
#                f.write(row + '\n') # 標準出力に惑わされないようファイルにも出力
    st1 = mid(row, len("/xxxx.xsrv.jp/public_html/xxxx/data/")+1 , len(row)-len("/xxxx.xsrv.jp/public_html/xxxx/data/") )
    print(st1)
    print(row)
    with open("data2/"+st1, "w") as f:
        ftp.retrlines("RETR "+row, f.write)

# フォルダー内のファイル一覧表示
filelist=glob.glob('data2/*.json')
print (filelist)
for file in filelist:
    print(file)

ファイルにおとさずに、変数に取り込む場合
参考

python – FTPでのファイル取得

from ftplib import FTP
import glob

ftp = FTP(
    "sv22xx.xserver.jp",
    "aaa@xxxx.xsrv.jp",
    passwd="xxxx"
)

def mid(text, n, m):
  return text[n-1:n+m-1]

items = ftp.nlst('/xxxx.xsrv.jp/public_html/xxxx/data/*.json')
print(items)
for row in items:
    st1 = mid(row, len("/xxxx.xsrv.jp/public_html/xxxx/data/")+1 , len(row)-len("/xxxx.xsrv.jp/public_html/xxxx/data/") )
    print(st1)
    print(row)
    ret = list()
    with open("data2/"+st1, "w") as f:
        #retに読み込んだ内容を追加
        ftp.retrlines("RETR "+row, ret.append)
    for line in ret:
        print(line)

Ubuntu 14 youtube-dlを使う

youtube-dl を使って見る

youtube-dl を使って見る

https://www.youtube.com/watch?v=xxxxxx

エラー

インストールされていない

sudo apt-get install youtube-dl

エラーだ

youtube-dl --version

古いバージョンだ

sudo youtube-dl -U

バージョンアップできない

https://www.howtoforge.com/tutorial/install-and-use-youtube-dl-on-ubuntu-1604/

に従い

sudo curl -L https://yt-dl.org/latest/youtube-dl -o /usr/bin/youtube-dl
sudo chmod 755 /usr/bin/youtube-dl

バージョンを調べる

sudo youtube-dl -U

新しくなった

https://www.youtube.com/watch?v=xxxxxx

うまく行った

Genymotionのお引越し

PCの動作が不安定になってきたので
Genymotionのお引越しをした

https://xanadu62ad.blogspot.com/2015/07/genymotion.html

を、参考にしたが、
Ubuntuの場合、ファイルパスが違うようであった

仕組みとしては、VirtualBoxで動いているので

拡張子.vboxを探してみた

find ./ -name "*.vbox" > /home/(username)/vbox.txt

見つかったので、これを、新しいPCに移行する事にした

./home/cfsx301/.Genymobile/Genymotion/deployed/Xxxx/Xxxx.vbox

移行する環境を/deployedのフォルダー単位で新しい環境の/deployedのフォルダーへ複写する

新しい環境で、genymotionを立ち上げるが、追加したものが認識しないため
一度、新しい環境でXxxx.vboxをダブルクリックし、VirtualBoxを起動する事で
VirtualBoxに新しい仮想ファイルの認識(登録)ができる

その後、genymotionを起動すると、移行した内容が一覧に追加される

この手順は

https://xanadu62ad.blogspot.com/2015/07/genymotion.html

を、参考にしました

Ubuntu Chromiumのバージョンを指定してインストール

同じ環境を、複数構築をするために
Chromiumのバージョンを固定してインストールしてみた

単純にインストールする場合

sudo apt-get install chromium-browser -y

で、できるが今後、同じ環境を維持したい

インストールでバージョン指定する方法もあるようであるが
debファイルにて、インストールし、
debファイルを個別に管理できればいい

現在のバージョンを調べたら

chromium-browser --version
Chromium 76.0.3809.100

であった。

https://moerrari.hatenablog.com/entries/2014/09/21
http://dwm.me/archives/3605

などを、参考に

apt-cache showpkg chromium-browser
76.0.3809.100-0ubuntu0.16.04.1 deb

で、検索(Google)したところ

https://pkgs.org/download/chromium-browser

で、見つかった。
最新版なため、見つかったのかもしれないが
ダウンロードした

chromium-browser_76.0.3809.100-0ubuntu0.16.04.1_amd64.deb

を、管理しておけば、別の環境にも反映できそう。

インストールは

sudo gdebi ./chromium-browser_76.0.3809.100-0ubuntu0.16.04.1_amd64.deb

あるいは

dpkg -i chromium-browser_76.0.3809.100-0ubuntu0.16.04.1_amd64.deb

依存関係が発生したら

sudo apt install -f

直接ダウンロードする場合は

wget http://archive.ubuntu.com/ubuntu/pool/universe/c/chromium-browser/chromium-browser_76.0.3809.100-0ubuntu0.16.04.1_amd64.deb

インスストールは

sudo gdebi ./chromium-browser_76.0.3809.100-0ubuntu0.16.04.1_amd64.deb

バージョンを指定して、インストールも可能かも

sudo apt-get install chromium-browser=76.0.3809.100-0ubuntu0.16.04.1

あと、インストールしたパッケージを
アップデートさせないには

echo chromium-browser hold | sudo dpkg --set-selections
echo chromium-browser-l10n hold | sudo dpkg --set-selections
echo chromium-codecs-ffmpeg hold | sudo dpkg --set-selections
chromium-browser --version
Chromium 76.0.3809.100

起動を確認

chromium-browser

Selenumeで接続するために、Driverもインストール

Ubuntu16なので

https://launchpad.net/ubuntu/xenial/amd64/chromium-chromedriver/

から

https://launchpad.net/ubuntu/xenial/amd64/chromium-chromedriver/76.0.3809.100-0ubuntu0.16.04.1

から

http://launchpadlibrarian.net/436852267/chromium-chromedriver_76.0.3809.100-0ubuntu0.16.04.1_amd64.deb

ダウンロードしてインストール

sudo gdebi ./chromium-chromedriver_76.0.3809.100-0ubuntu0.16.04.1_amd64.deb

直接ダウンロードする場合は

wget http://launchpadlibrarian.net/436852267/chromium-chromedriver_76.0.3809.100-0ubuntu0.16.04.1_amd64.deb

インスストールは

sudo gdebi ./chromium-chromedriver_76.0.3809.100-0ubuntu0.16.04.1_amd64.deb

インストールしたか確認

ls /usr/lib/chromium-browser/chromedriver

サンプルで操作確認

vim sample.py

vimがインストールされていない場合は
インストール

sudo apt-get install vim

vim sample.py
iで挿入−モードで
以下をコピーし
Shift+Ctr+Vで、貼り付ける

from selenium import webdriver
 
driver = webdriver.Chrome("/usr/lib/chromium-browser/chromedriver")
driver.get('https://google.co.jp')

esc:qw
で保存終了

python sample.py

で、操作確認