ubuntu phpmyadmin root 登录提示#1698 - Access denied for user 'root'@'localhost'

上次装好mysql,phpmyadmin,登录后由于默认设置的账号密码登录是看不到本地mysql的数据库,而且是无法创建数据库的,那么这就很尴尬了,看了网上其他说法,有的说修改config.inc.php,有的说修改mysql的配置文件,但似乎都并不适合我的这个错误,后来查阅了相关资料后,才发现MySQL 5.7改变了安全模式:现在MySQL root登录需要一个sudo(而密码仍然可以是空白的)。就是说,phpMyAdmin将无法使用根凭证。

那么怎么办呢?最简单(最安全)的解决方案将创建一个新用户并授予所需的权限。

FRP內網穿透服務端及客戶端架設

 

 

去github下載最新版FRP,下載時對應自己的作業系統。https://github.com/fatedier/frp

再去讀一下FRP的 README.md和Wiki,瞭解一下基本工作原理。

<span style="font-size: 18pt;">服務端架設</span>

下載對應自己版本的frp,https://github.com/fatedier/frp/releases

并傳到自己的VPS上,或者自己去找免費的FRP服務,請直接跳轉到客戶端架設。下載好後解壓出來,只保留frps及其配置文件。

打開配置文件,

[common]
bind_port = 7006 #服務端與客戶端連接端口
bind_addr=0.0.0.0#
kcp_bind_port=7006#开启 kcp 协议支持
bind_udp_port = 7001#UDP端口
vhost_http_port = 8088#http的訪問端口,可以自己定義,
vhost_https_port = 8086#https訪問端口,可以自己定義
subdomain_host = frp.*.com#解析域名,需要把這個域名解析到你服務器的IP上。
dashboard_port = 8089#控制台的端口
dashboard_user = name#控制台的訪問帳戶
dashboard_pwd = password#控制台的訪問密碼
privilege_token = *  #服務器與客戶端連接的token。最好設置一個比較複雜的,這樣會比較安全
max_pool_cunt=5#連接池

tcp_mux=true#啟用tcp多路複用

 

更多設置請看<span class="repo-root js-repo-root"><span class="js-path-segment">frp</span></span><span class="separator">/</span>README_zh.md

設置好以後就可以執行./frps -c ./frps.ini 啟動FRP。
<h3>添加frp到開機自啟。</h3>
請參考本站的  ubuntu 添加開機自啟軟件方法

然後再參考  Ubuntu/CentOS使用Supervisor管理进程

可以做到守護進程,這樣就不怕進程被kill了。

 
<h2>FRPC客戶端的配置。</h2>
[common]
server_addr = 服務器IP
server_port = 7006#和服務端的bind_port相同
privilege_token = #和服務端的privilege_token相同
tcp_mux=ture#如果服務端開啟了tcp多路複用客戶端也要開啟

protocol=kcp#根據自己需求是否開啟kcp,開啟后會消耗較多流量

pool_count=5#連接池,具體解釋請看<span class="repo-root js-repo-root"><span class="js-path-segment">frp</span></span><span class="separator">/</span>README_zh.md
login_fail_exit=false#鏈接失敗后不退出

[ssh]#根據自己的需求修改名字,方便服務端web查看管理
type = tcp
local_ip = 127.0.0.1#需要穿透的內網機器,如果是本機可以寫127.0.0.1也可以寫本機ip如192.168.1.1看你的ip是什麽就寫什麽
local_port = 22#需要穿透的本地端口
use_encryption = false#根據需要是否啟用加密
use_compression = false#根據需要是否啟用壓縮
remote_port = 39001#遠程服務器所用的端口

[NextCloud]
type = http
local_ip = 192.168.6.182#本地局域網機器ip
local_port = 80#需要穿透的本地端口
subdomain = next#二級域名,服務端設定的域名為subdomain_host = frp..com,那麼訪問這個穿透的端口就是next.frp..com:8088(端口號為服務端設置的vhost_http_port = 8088)

 

服務端添加開機自啟已經進程守護請參考服務端的設置。

如果這些都設置的沒問題的話打開服務端web就可以看到客戶端連接上來了。

 

linux系統swappiness參數在內存與交換分區間優化

 

 

swappiness的值的大小對如何使用swap分區是有著很大的聯繫的。swappiness=0的時候表示最大限度使用物理記憶體,然後才是 swap空間,swappiness=100的時候表示積極的使用swap分區,並且把記憶體上的數據及時的搬運到swap空間裏面。linux的基本默認設置為60,具體如下:

[root@timeserver ~]# cat /proc/sys/vm/swappiness
60

也就是說,你的記憶體在使用到100-60=40%的時候,就開始出現有交換分區的使用。大家知道,記憶體的速度會比磁片快很多,這樣子會加大系統io,同時造的成大量頁的換進換出,嚴重影響系統的性能,所以我們在操作系統層面,要盡可能使用記憶體,對該參數進行調整。

臨時調整的方法如下,我們調成10:

[root@timeserver ~]# sysctl vm.swappiness=10
vm.swappiness = 10
[root@timeserver ~]# cat /proc/sys/vm/swappiness
10
這只是臨時調整的方法,重啟後會回到默認設置的

要想永久調整的話,需要將
需要在/etc/sysctl.conf修改,加上:
[root@timeserver ~]# cat /etc/sysctl.conf

Controls the maximum number of shared memory segments, in pages

kernel.shmall = 4294967296
vm.swappiness=10

[root@timeserver ~]# sysctl -p

這樣便完成修改設置!

Ubuntu/CentOS使用Supervisor管理进程

<h2></h2>
<h2></h2>
<h2>1.安装supervisor</h2>

<span class="hljs-meta">#</span><span class="bash">pip  </span>
pip install supervisor  
<span class="hljs-meta">  
#</span><span class="bash">ubuntu  </span>
sudo apt-get install supervisor  
<span class="hljs-meta">  
#</span><span class="bash">centos (可能需要先安装epel源) </span>
yum install epel-release
yum -y install supervisor  

<div data-unique="2.启动"></div>
<h2>2.启动</h2>
安装完后如supervisor没启动,可以使用如下,手动启动

<span class="hljs-meta">#</span><span class="bash">启动supervisor  </span>
/usr/bin/supervisord -c /etc/supervisord.conf  
或者
supervisord -c /etc/supervisord.conf

进入 cd /etc 目录 找到supervisord.conf 配置文件和supervisord.d 文件夹,编辑supervisord.conf文件,拉到最底部我们可以看到

files = supervisord.d/*.ini 这句代码说明它会加载supervisord.d文件夹中的所有.ini配置文件

 
<h2>3.添加开机自启动</h2>

<span class="hljs-comment">#创建supervisord.service  </span>
<span class="hljs-attribute">vi</span> /usr/lib/systemd/system/supervisord.service  
  
<span class="hljs-comment">#supervisord.service文件内容  </span>
[Unit]  
Description=Supervisor  
  
[Service]  
Type=forking  
ExecStart=/usr/bin/supervisord -c /etc/supervisord.conf  
ExecStop=/usr/bin/supervisorctl <span class="hljs-variable">$OPTIONS</span> shutdown  
ExecReload=/usr/bin/supervisorctl <span class="hljs-variable">$OPTIONS</span> reload  
KillMode=process  
Restart=<span class="hljs-literal">on</span>-failure  
RestartSec=<span class="hljs-number">42s</span>  
  
[Install]  
WantedBy=multi-user.target  

激活开机启动

<span class="hljs-meta">#</span><span class="bash">激活开机启动  </span>
systemctl enable supervisord.service  
<span class="hljs-meta">  
#</span><span class="bash">如修改了supervisord.service配置文件需重新加载  </span>
systemctl daemon-reload  

各种开机自启动脚本:https://github.com/Supervisor/initscripts
<div data-unique="4.创建一个配置文件"></div>
<h2>4.创建一个配置文件</h2>

[<span class="hljs-meta">program:DeployLinux</span>]   <span class="hljs-meta">#DeployLinux  为程序的名称</span>
command=dotnet DeployLinux.dll <span class="hljs-meta">#需要执行的命令</span>
directory=/home/publish <span class="hljs-meta">#命令执行的目录</span>
environment=ASPNETCORE__ENVIRONMENT=Production <span class="hljs-meta">#环境变量</span>
user=root <span class="hljs-meta">#用户</span>
stopsignal=INT 
autostart=<span class="hljs-literal">true</span> <span class="hljs-meta">#是否自启动</span>
autorestart=<span class="hljs-literal">true</span> <span class="hljs-meta">#是否自动重启</span>
startsecs=<span class="hljs-number">3</span> <span class="hljs-meta">#自动重启时间间隔(s)</span>
stderr_logfile=/<span class="hljs-keyword">var</span>/log/ossoffical.err.log <span class="hljs-meta">#错误日志文件</span>
stdout_logfile=/<span class="hljs-keyword">var</span>/log/ossoffical.<span class="hljs-keyword">out</span>.log <span class="hljs-meta">#输出日志文件</span>

<span class="hljs-meta">#</span><span class="bash">加载配置文件 </span>
supervisorctl reread
<span class="hljs-meta">

</span><span class="bash">启动spring-app </span>

supervisorctl start spring-app
<span class="hljs-meta">

</span><span class="bash">查看进程状态 </span>

supervisorctl status

<h3>遇到的问题</h3>
添加要启动的程序配置文件后supervisor无法再启动,用systemctl status supervisor 命令查看状态发现有错误。

把添加的程序配置文件删除后再启动 supervisor可以正常启动,这样问题就是出现在了所添加的程序配置文件上。

比较奇怪的的是配置文件和另一台一样也会报错,需要把配置文件里面的一行命令删除后才正常。好奇怪,也不知道为什么。