Mysql データベース アプリケーションと一般的な問題をまとめた 1 つの記事

藏色散人
リリース: 2022-01-24 10:54:34
転載
2543 人が閲覧しました

1. mysql

1 をインストールします。CentOS システム

1.) mysql をインストールします。

mysql
$ wget http://repo.mysql.com/mysql-community-release-el7-5.noarch.rpm
$ sudo rpm -ivh mysql-community-release-el7-5.noarch.rpm
ログイン後にコピー
mysql
$ sudo yum install -y mysql-server
ログイン後にコピー

2 のリポジトリ ソースをダウンロードしてインストールします。) サービスの開始/再起動/シャットダウン

service mysqld start | restart | stop
ログイン後にコピー

2. アルパイン システム

アルパイン システムにインストールされている mysql は、実際にはオープン ソースの MariaDB です。MariaDB データベースは MySQL のブランチ/派生です。MySQL と完全に互換性があり、機能が向上しています。ストレージ エンジンといくつかの新機能。すべて MySQL よりも優れています。インストール リファレンス
$ apk update

# 安装数据库及客户端
$ apk add mysql mysql-client

# 初始化数据库
$ mysql_install_db --user=mysql --datadir=/var/lib/mysql

# 启动服务
$ rc-service mariadb start  # 若没有rc,安装:apk add openrc

# 修改密码
$ mysqladmin -u root password '新root密码'

# 加入开机启动
$ rc-update add mariadb default
ログイン後にコピー

2. 操作 mysql

1. データベースへのログイン

デフォルトの初期化直接ログイン
$ mysql
ログイン後にコピー
プロンプトが失敗した場合は、説明してください パスワードをお持ちの場合は、次を実行してください:
$ mysql -uroot -p

# 一次性登录
$ mysql -u用户 -p密码
ログイン後にコピー

2. 操作データベース

# 查看所有数据库
mysql> show databases;

# 创建数据库
mysql> create database xxx charset=utf8;

# 删除数据库
mysql> drop database xxx;

# 切换数据库
mysql> use mysql;

# 查看表
mysql> show tables;

# 创建表
mysql> create table xxx (
    id int,
    name varchar(20),
    update_time datetime
);

# 删除表
mysql> drop table xxx;

# 显示表结构
mysql> desc xxx;

# 查询指定a,b字段的记录,不知道用*代替
mysql> select a,b form xxx;

# 插入记录
mysql> insert into xxx(id,user) values(1,'wang',now());

# 删除记录
mysql> delete from xxx where name='wang';

# 清屏命令
mysql> system clear;

# 退出
mysql> quit;
ログイン後にコピー

3. ユーザー管理

ユーザーmysql のテーブルはすべてのユーザー権限を保存するために使用され、ホスト フィールドは指定された IP を表します。ユーザーはそれを使用できます。2 人のユーザーは同じ名前ですが、異なるホストを持っています。一般的なホスト値は次のとおりです:

localhost : サーバー側でのみ使用できます
192.168.4.%: 指定された IP セグメントが使用できます
% : すべての IP ユーザーが使用できることを示すワイルドカード。主にリモート接続に使用されます

以下のユーザーを作成/削除する場合、user@'host' で指定できます。指定しない場合、デフォルトは %

# 切换到mysql权限数据库
mysql> use mysql;

# 查看用户及所属的host
mysql> select user,host from user;

# 新建用户并设置密码
mysql> create user '用户名' identified by '密码';

# 上面不指定host,默认%,等同于:
mysql> create user '用户名'@'%' identified by '密码';

# 删除用户(只删除host为%的用户)
mysql> drop user '用户名';

# 查看用户权限
mysql> show grants for '用户名';

# 设置权限,并指定数据库
mysql> grant all privileges on xxxDB.* to '用户名';

# 修改密码,注意密码处不能直接password='新密码'
mysql> update user set password=password('新密码') where user='用户名';

# 刷新权限表
mysql> flush privileges;
ログイン後にコピー

4. バッチ操作

1. ) SQL スクリプトのバッチ実行

$ mysql -uroot -p -Dxxx < ./init.sql    # xxx为数据库
ログイン後にコピー

2.) データベースのバックアップ/リストア

$ mysqldump --all-databases -h127.0.0.1 -u root -p > ./backup/mysql-bak.sql
$ mysqldump --all-databases -h127.0.0.1 -u root -p < ./backup/mysql-bak.sql
ログイン後にコピー

3、FAQ

1. 消去方法root パスワードを忘れた場合はどうすればよいですか?

$ mysql –skip-grant-table &
  mysql> use mysql;
  mysql> update user set password=password('新密码') where user='root';
  mysql> flush privileges;
  mysql> quit;
ログイン後にコピー
ここで注意する必要があるのは、各コマンドはセミコロン「;」で終わる必要があることです。上記の操作を実行すると、root パスワードがクリアされます。

2. Null ユーザー エラー

エラー 1044 (42000): ユーザー ''@'localhost' のデータベース 'mysql' へのアクセスが拒否されました エラー:

理由:

mysql データベースの user テーブルに、ユーザー名が空白のアカウント、つまり匿名アカウントが存在するため、ログイン時に root を使用しますが、ログイン実は匿名です。

解決策:

# 1.关闭mysql
$ service mysqld stop

# 2.屏蔽权限
$ mysqld_safe --skip-grant-table # 屏幕出现: Starting demo from .....

# 3.新开起一个终端输入
$ mysql -uroot mysql
  mysql> update user set password=password('新密码') where user='root';
  mysql> flush privileges;
  mysql> quit;
ログイン後にコピー

3. サービスでは root を使用できますが、リモート ログインはできません

$ mysql -uroot -p
  mysql> use mysql;
  
  # 先查看user表host字段,有无通配符'%',若有直接运行flush privileges;
  mysql> select host from user where user='root';  
  mysql> grant all privileges *.* to 'root'@'%' identified by 'root密码';
  mysql> flush privileges;
  mysql> quit;
ログイン後にコピー

4. リモート接続のプロンプト caching_sha2_password error

mysql5.7 バージョン以降、caching_sha2_password 検証方法がデフォルトで採用されます
mysql> use mysql;
mysql> alter user 'root'@'%' identified with mysql_native_password by 'root密码';
ログイン後にコピー

5。Mysql はデフォルトのデータ ストレージを変更します

$ mysqladmin -u root -p variables | grep datadir  # 查看mysql数据库存放目录
$ service mysqld stop
$ mv /var/lib/mysql /路径  # 移动数据库文件

$ vi /etc/my.cnf

# 修改datadir和socket两个字段,并添加以下:
[mysql] 
socket=/路径/mysql.sock

$ service mysqld start
ログイン後にコピー

推奨される学習: " mysql ビデオ チュートリアル >>

以上がMysql データベース アプリケーションと一般的な問題をまとめた 1 つの記事の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

関連ラベル:
ソース:segmentfault.com
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート
私たちについて 免責事項 Sitemap
PHP中国語ウェブサイト:福祉オンライン PHP トレーニング,PHP 学習者の迅速な成長を支援します!