3.1 MySQL

[TOC]

安装MySQL

卸载mariadb

rpm -qa | grep mariadb
rpm -e --nodeps mariadb-libs

在线安装

wget http://repo.mysql.com/mysql-community-release-el7-5.noarch.rpm
sudo rpm -ivh mysql-community-release-el7-5.noarch.rpm
sudo yum -y install mysql-server

rpm安装

rpm -ivh mysql-community-common
rpm -ivh mysql-community-lib
rpm -ivh mysql-community-client
rpm -ivh mysql-community-server

service mysqld start

查看安装默认密码

cat /var/log/mysqld.log |grep password

修改密码

mysql > set global validate_password_policy=0;
mysql > set global validate_password_length=1;
mysql > ALTER USER USER() IDENTIFIED BY '123456';
mysql > use mysql;
mysql > update user set password=password('123456') where user='root';
mysql > select host,user, password from user;
mysql > GRANT ALL PRIVILEGES ON *.* TO root@"%" IDENTIFIED BY "root";
mysql > flush privileges;
mysql > exit;
service mysqld restart

windows mysql 5.7 修改密码

mysql > use mysql;
mysql > update user set authentication_string=password('新密码') where user='root' and Host='localhost';
mysql > flush privileges;
mysql > exit;

允许远程

mysql > use mysql;
mysql > GRANT ALL PRIVILEGES ON *.* TO root@"%" IDENTIFIED BY "new_password";
mysql > flush privileges;
mysql > exit;
service mysqld restart

开放端口

firewall-cmd --zone=public --add-port=3306/tcp --permanent
firewall-cmd --reload
iptables -L -n

查看连接占用

show processlist;
show full processlist;
show status;

ON DUPLICATE KEY UPDATE

判断记录是否存在,不存在则插入存在则更新的场景.

举个例子,字段a被定义为UNIQUE,并且原数据库表table中已存在记录(2,2,9)和(3,2,1),如果插入记录的a值与原有记录重复,则更新原有记录,否则插入新行:

INSERT INTO TABLE (a,b,c) VALUES 
(1,2,3),
(2,5,7),
(3,3,6),
(4,8,2)
ON DUPLICATE KEY UPDATE b=VALUES(b);

以上SQL语句的执行,发现(2,5,7)中的a与原有记录(2,2,9)发生唯一值冲突,则执行ON DUPLICATE KEY UPDATE,将原有记录(2,2,9)更新成(2,5,9),将(3,2,1)更新成(3,3,1),插入新记录(1,2,3)和(4,8,2) 注意:ON DUPLICATE KEY UPDATE只是MySQL的特有语法,并不是SQL标准语法!

删除字段为NULL

DELETE FROM table_name WHERE type is NULL;

修改最大连接

[root@test ~]#  ulimit -n
1024

[root@test ~]# vim /etc/security/limits.conf
open_files_limit = 65535

[root@test ~]# vim /usr/lib/systemd/system/mysqld.service
LimitNOFILE=65535
LimitNPROC=65535

systemctl daemon-reload
systemctl restart  mysqld.service

mysql> show variables like "max_connections";

查看状态

show status;

Windows MySQL 57 忘记密码

net stop mysql

mysqld --defaults-file="C:\ProgramData\MySQL\MySQL Server 5.7\my.ini" --skip-grant-tables

新开窗口

mysql -uroot -p
# 直接回车
show databases;

use mysql;

update user set authentication_string=password('123456') where user='root';

FLUSH PRIVILEGES;

quit
Copyright © dalongm.top 2020 - 2021 all right reserved,powered by Gitbook修改时间: 2021-07-16 17:24:21

results matching ""

    No results matching ""