リモート接続でMySQL_ピットロード

はじめに:以前に遭遇した、唯一の下で設定ファイルを変更する必要があるのMySQLのリモート接続はありませんが、もともと私はそれは非常に一般的な問題だと思った彼は問題を解決するために友人に頼ま、少し長い時間間隔、または少しさび、ここに発生した問題のいくつかを記録します。

1.変更ログインユーザの権限

1.0 rootパスワードを覚えている場合は、この手順を省略することができ、rootのパスワードを変更します。

1.0.1。MySQLのストップサービス

$ service mysql stop

1.0.2。my.cnfファイルを変更します。

どこのmy.cnfファイルを見つけるために

$ find / -name my.cnf
/etc/mysql/my.cnf

my.cnfのファイルを変更し、MySQLを起動したときに、文書、助成金のテーブルにスキップ・助成金・テーブルを追加すると、起動しない、権限テーブル

$ vim /etc/mysql/my.cnf
[mysqld]
skip-grant-tables

1.0.3。[スタート] MySQLサービス

$ service mysql restart

1.0.4。変更MySQLのrootユーザのパスワード

$ mysql
mysql> use mysql;
#更改user表中root用户密码
mysql> update user set authentication_string=PASSWORD("new_pass") where user='root';

1.0.5。再度のmy.cnfファイルを変更し、あなたが戻って、my.cnf設定ファイルを変更する必要があり、スキップ・助成金・テーブルは、それについてコメント

$ vim /etc/mysql/my.cnf
[mysqld]
# skip-grant-tables

1.0.6。MySQLは再び再起動しました

$ service mysql restart

新しいルートパスワードのmysqlを使用してログインします

1.1はじめに着陸許可:

MySQLのユーザーの中に手段は、ユーザがどのホスト土地使用できるようにするマルチホストオプションを設定します。
一般的な共通のホストオプション:%、ローカルホスト、IPアドレス
%は:任意のホストを訪問することができます
ローカルホスト:マシンにのみログインできる
IPアドレス:IPアドレスを訪問することができます

1.2。変更着陸ルート権限

MySQLの-uルート-p
使用のmysql;

1.3。変更の上陸許可

更新デシベルセットホスト=「%」ユーザー=「 ユーザ名」;
権限はPRIVILEGES ALL変更
にMySQL>グラントすべての権限をルートに@「パスワード」で識別される「%」;

1.4更新権限リスト

フラッシュ権限;

2.root権限(SU)の下では、MySQLの設定ファイルを変更する(2があります!):

2.1。/etc/mysql/mysql.conf.d/mysqld.cnf

[root@my ~]# vi /etc/mysql/mysql.conf.d/mysqld.cnf 
# Instead of skip-networking the default is now to listen only on
# localhost which is more compatible and is not less secure.
#bind-address           = 127.0.0.1    # bind-address = 127.0.0.1注释掉

2.2。あなたはMariadb10、対応するディレクトリのファイルが変更されますインストールしている場合は、修正/etc/mysql/mariadb.conf.d/50-server.cnf

[root@my ~]# cd /etc/mysql/mariadb.conf.d
[root@my ~]/etc/mysql/mariadb.conf.d# ls
50-client.cnf  50-mysql-clients.cnf  50-mysqld_safe.cnf  50-server.cnf
vi 50-server.cnf    # 同样是注释掉bind-address

2.3。再起動のMySQL

[root@my ~]:~# service mysql restart

2.4リモートでの再接続

[root@nb0 ~]# mysql -h xx.xx.xx.xx -uroot -p
Enter password: 
Welcome to the MariaDB monitor.  Commands end with ; or \g.
Your MySQL connection id is 10
Server version: 5.7.11-0kord6 (Ubuntu)

Copyright (c) 2000, 2016, Oracle, MariaDB Corporation Ab and others.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

MySQL [(none)]>

3.キーの問題:

3.1。

ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/var/run/mysqld/mysqld.sock' (111 "Connection refused")

ソリューション:オープン/etc/mysql/mysql.conf.d/mysqld.cnf、プロトコルを追加= TCP

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

3.2。

Can 't connect to local MySQL server through socket '/tmp/mysql.sock '(2) ";

ソリューション:

示されるように、[クライアント]の設定項目を追加
設定する前に、[クライアント]の前に配置:(「/tmp/mysql.sock」(2)与えられています)

[mysqld]
datadir=/usr/local/mysql/data
basedir=/usr/local/mysql
socket=/var/lib/mysql/mysql.sock
user=mysql
# Disabling symbolic-links is recommended to prevent assorted security risks
symbolic-links=0

[mysqld_safe]
log-error=/var/log/mysqld.log
pid-file=/var/run/mysqld/mysqld.pid

設定:(設定[クライアント]の後、mysqlのサービスを再起動します)

[mysqld]
datadir=/usr/local/mysql/data
basedir=/usr/local/mysql
socket=/var/lib/mysql/mysql.sock(跟这个socket路径一样)
user=mysql
# Disabling symbolic-links is recommended to prevent assorted security risks
symbolic-links=0

[mysqld_safe]
log-error=/var/log/mysqld.log
pid-file=/var/run/mysqld/mysqld.pid

[client]
port=3306
socket=/var/lib/mysql/mysql.sock

3.3。

[....] Restarting mysql (via systemctl): mysql.serviceJob for mariadb.service failed                                                                                                       because the control process exited with error code.
See "systemctl status mariadb.service" and "journalctl -xe" for details.
 failed!

解決策:
使用してみてくださいLL / LS -alすべて、そしてオーバー変更するには、次のコマンドを使用していない場合、あなたは/ var /実行/ mysqldをしてmysqlのを見てみましょう。

>ls -al
>chown -R mysql:mysql mysqld/

3.4。

ERROR 1524 (HY000): Plugin 'unix_socket' is not loaded

ソリューション:

/etc/init.d/mysql stop
sudo killall mysqld_safe
sudo killall mysqld
sudo mysqld_safe --skip-grant-tables &
mysql -u root
use mysql;
update user set password=PASSWORD("mynewpassword") where User='root';
update user set plugin="mysql_native_password";
quit;
/etc/init.d/mysql stop
sudo kill -9 $(pgrep mysql)
/etc/init.d/mysql start

参考リンク:

https://www.cnblogs.com/duanlinxiao/p/10722151.html
https://www.cnblogs.com/jackadam/p/9505562.html#_label0_0
https://blog.csdn.net/chengyuqiang/article/details/70153980
https://blog.csdn.net/luckytanggu/article/details/80251833
https://blog.csdn.net/Homewm/article/details/81628116
https://blog.csdn.net/hjf161105/article/details/78850658
https://blog.csdn.net/u012804180/article/details/80801351
https://www.jb51.net/article/174244.htm

おすすめ

転載: www.cnblogs.com/wangxue533/p/12315474.html