(自家用Linuxでmysql 5.7.30+構成セキュリティをインストール)
5269 ワード
インストール手順1、システムに付属のmysqlがあるかどうかを検出する.
既に存在する場合は、インストールしたmysqlをアンインストールするコマンドを実行します.
2.インストール
wgetコマンドがない場合は、次のコマンドでyum install wget-y 3をインストールし、選択yumソースを追加できます.
4、mysqlをインストールする:
5、mysqlを起動する:
#インストールバージョンの表示
6、デフォルトパスワードの表示
7、初期パスワードを変更し、リモートアクセスを許可する
8、ファイアウォールの構成3306ポートを開く
rootユーザーのリモートログイン機能をオープンします(以下の構成は上記の構成では使用できません)
構成mysqlプロファイル(以下の構成は上記の構成では使用できません)vim/etc/myを実行する.cnfコマンド、このファイルを編集します.
mysql起動の設定
[root@lch software]# vim/etc/rc.local
ファイルにservice mysqld startを追加すればいい
新しいMySQLユーザーアカウントを作成MySQLのユーザーアカウントは、ユーザー名とホスト名のセクションで構成されます.新しいMySQLまたはMariaDBユーザーアカウントを作成するには、「database_user'は、作成するユーザーの名前に置き換えられます.
MySQLユーザーアカウントパスワードの変更
すべてのMySQLユーザーアカウントのリスト
MySQLユーザーアカウントの削除
MySQLユーザーアカウントへの権限の付与
特定のデータベースを使用してユーザー・アカウントのすべての権限を拡大するには、次のコマンドを使用します.
すべてのデータベースのユーザー・アカウントにすべての権限を拡張するには、次のコマンドを使用します.
データベース内の特定のテーブルからユーザー・アカウントにすべての権限を付与するには、次のコマンドを使用します.
特定のデータベース・タイプのユーザー・アカウントの特定の権限のみを付与する場合は、次の操作を行います.
MySQLユーザーアカウントの権限の取り消し
mysql符号化の変更の表示
SET character_set_server=‘utf8’; SET character_set_database = ‘utf8’; しかし、このような変更は、データベースが再起動された後もデータベース符号化は復元され、
このコマンドで
mysqlシングルレコード格納内容サイズ制限設定1.コマンドの使用
max_allowed_packetはサイズを制限するレコードです
2.設定の変更:コマンドの使用
max_の設定allowed_packet=20 M注意:サイズは1024の倍数で、最大1 gでなければなりません.変更が完了したら、コマンドラインを再起動して変更に成功したかどうかを確認します.
私が使っているのはmysql 5です.7.30 mysql Expression#1 of SELECTリストis not in GROUP BY clause and contains nonaggreの問題に遭遇
报告错误commysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException: Expression #1 of SELECT list is not in GROUP BY clause and contains nonaggregated column ‘db_diary.t_diaryType.diaryTypeId’ which is not functionally dependent on columns in GROUP BY clause; this is incompatible with sql_mode=only_full_group_by
解決策navcatを開くと、
sqlでクエリーする
クエリの値は次のとおりです.
ONLYを削除FULL_GROUP_BY、値を再設定します.
jdbc接続時に使用:(中国語の文字化けしの問題を解決するにはmysql 5.7.30を使用)
補足:Linuxの下MySQLのいくつかの重要なディレクトリ:データベースディレクトリ/var/lib/mysql/プロファイル/usr/share/mysql(mysql.serverコマンドおよびプロファイル)関連コマンド/usr/bin(mysqladmin mysqldumpなどのコマンド)起動スクリプト/etc/rc.d/init.d/(スクリプトファイルmysqlを起動するディレクトリ)
yum list installed | grep mysql
既に存在する場合は、インストールしたmysqlをアンインストールするコマンドを実行します.
yum -y remove mysql-libs.x86_64
2.インストール
wget http://repo.mysql.com//mysql57-community-release-el7-7.noarch.rpm
wgetコマンドがない場合は、次のコマンドでyum install wget-y 3をインストールし、選択yumソースを追加できます.
# yum
yum localinstall mysql57-community-release-el7-7.noarch.rpm
# yum , 5.7
yum repolist all | grep mysql
4、mysqlをインストールする:
yum install mysql-community-server
5、mysqlを起動する:
service mysqld start
#インストールバージョンの表示
mysqladmin --version
6、デフォルトパスワードの表示
grep -n password /var/log/mysqld.log
7、初期パスワードを変更し、リモートアクセスを許可する
# ,
mysql -u root -p
# ,
SET PASSWORD = PASSWORD('123456qwe@QWE');
# mysql
use mysql;
#
update user set Host='%' where User='root';
:
FLUSH PRIVILEGES;
8、ファイアウォールの構成3306ポートを開く
systemctl start firewalld
# 80
firewall-cmd --permanent --query-port=3306/tcp
# 80
firewall-cmd --zone=public --add-port=3306/tcp --permanent
#
systemctl restart firewalld.service
rootユーザーのリモートログイン機能をオープンします(以下の構成は上記の構成では使用できません)
mysql> GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY '123456' WITH GRANT OPTION;
mysql> FLUSH PRIVILEGES;
構成mysqlプロファイル(以下の構成は上記の構成では使用できません)vim/etc/myを実行する.cnfコマンド、このファイルを編集します.
/ect/my.cnf : default-character-set=utf8
mysql起動の設定
[root@lch software]# vim/etc/rc.local
ファイルにservice mysqld startを追加すればいい
新しいMySQLユーザーアカウントを作成MySQLのユーザーアカウントは、ユーザー名とホスト名のセクションで構成されます.新しいMySQLまたはMariaDBユーザーアカウントを作成するには、「database_user'は、作成するユーザーの名前に置き換えられます.
CREATE USER 'database_user'@'localhost' IDENTIFIED BY 'user_password';
MySQLユーザーアカウントパスワードの変更
ALTER USER 'database_user'@'localhost' IDENTIFIED BY 'new_password';
すべてのMySQLユーザーアカウントのリスト
SELECT user, host FROM mysql.user;
MySQLユーザーアカウントの削除
DROP USER 'database_user@'localhost';
MySQLユーザーアカウントへの権限の付与
特定のデータベースを使用してユーザー・アカウントのすべての権限を拡大するには、次のコマンドを使用します.
GRANT ALL PRIVILEGES ON database_name.* TO 'database_user'@'localhost';
すべてのデータベースのユーザー・アカウントにすべての権限を拡張するには、次のコマンドを使用します.
GRANT ALL PRIVILEGES ON *.* TO 'database_user'@'localhost';
データベース内の特定のテーブルからユーザー・アカウントにすべての権限を付与するには、次のコマンドを使用します.
GRANT ALL PRIVILEGES ON database_name.table_name TO 'database_user'@'localhost';
特定のデータベース・タイプのユーザー・アカウントの特定の権限のみを付与する場合は、次の操作を行います.
GRANT SELECT, INSERT, DELETE ON database_name.* TO database_user@'localhost';
MySQLユーザーアカウントの権限の取り消し
REVOKE ALL PRIVILEGES ON database_name.* TO 'database_user'@'localhost';
mysql符号化の変更の表示
show variables like 'character%';
SET character_set_server=‘utf8’; SET character_set_database = ‘utf8’; しかし、このような変更は、データベースが再起動された後もデータベース符号化は復元され、
このコマンドで
set global character_set_server=utf8;
Query OK, 0 rows affected
mysqlシングルレコード格納内容サイズ制限設定1.コマンドの使用
show VARIABLES like '%max_allowed_packet%'; mysql ,
max_allowed_packetはサイズを制限するレコードです
2.設定の変更:コマンドの使用
set global max_allowed_packet = 2*1024*1024*10 mysql my.cnf :
max_の設定allowed_packet=20 M注意:サイズは1024の倍数で、最大1 gでなければなりません.変更が完了したら、コマンドラインを再起動して変更に成功したかどうかを確認します.
私が使っているのはmysql 5です.7.30 mysql Expression#1 of SELECTリストis not in GROUP BY clause and contains nonaggreの問題に遭遇
报告错误commysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException: Expression #1 of SELECT list is not in GROUP BY clause and contains nonaggregated column ‘db_diary.t_diaryType.diaryTypeId’ which is not functionally dependent on columns in GROUP BY clause; this is incompatible with sql_mode=only_full_group_by
解決策navcatを開くと、
sqlでクエリーする
select @@global.sql_mode
クエリの値は次のとおりです.
ONLY_FULL_GROUP_BY,STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION
ONLYを削除FULL_GROUP_BY、値を再設定します.
set @@global.sql_mode
=’STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION’;
jdbc接続時に使用:(中国語の文字化けしの問題を解決するにはmysql 5.7.30を使用)
dbUrl=jdbc:mysql://203.195.161.34:3306/db_diary? useUnicode=true&characterEncoding=UTF-8
補足:Linuxの下MySQLのいくつかの重要なディレクトリ:データベースディレクトリ/var/lib/mysql/プロファイル/usr/share/mysql(mysql.serverコマンドおよびプロファイル)関連コマンド/usr/bin(mysqladmin mysqldumpなどのコマンド)起動スクリプト/etc/rc.d/init.d/(スクリプトファイルmysqlを起動するディレクトリ)