目录
数据库安装
5.7和8.0版本链接:https://pan.baidu.com/s/1EanyXTOPi0YXKVuYB_2qcA
提取码:93in
下面是redhat9的安装
[root@redhat9-1 ~]# rpm -ivh https://repo.mysql.com//mysql80-community-release-el9-1.noarch.rpm [root@redhat9-1 ~]# dnf install mysql-server -y [root@redhat9-1 ~]# systemctl start mysqld [root@redhat9-1 ~]# systemctl status mysqld ● mysqld.service - MySQL Server Loaded: loaded (/usr/lib/systemd/system/mysqld.service; enabled; vendor preset: disabled) Active: active (running) since Wed 2023-05-24 21:07:10 CST; 12s ago Docs: man:mysqld(8) http://dev.mysql.com/doc/refman/en/using-systemd.html Process: 41705 ExecStartPre=/usr/bin/mysqld_pre_systemd (code=exited, status=0/SUCCESS) Main PID: 41778 (mysqld) Status: "Server is operational" Tasks: 38 (limit: 75115) Memory: 475.9M CPU: 8.537s CGroup: /system.slice/mysqld.service └─41778 /usr/sbin/mysqld 5月 24 21:07:00 redhat9-1 systemd[1]: Starting MySQL Server... 5月 24 21:07:10 redhat9-1 systemd[1]: Started MySQL Server. [root@redhat9-1 ~]# grep 'temporary password' /var/log/mysqld.log 2023-05-24T13:07:04.939907Z 6 [Note] [MY-010454] [Server] A temporary password i s generated for root@localhost: kDgBlZnX=3ke [root@redhat9-1 ~]# mysql -uroot -p'kDgBlZnX=3ke' mysql> ALTER USER 'root'@'localhost' IDENTIFIED BY 'Slbrhce@317418'; Query OK, 0 rows affected (0.00 sec) #这里密码策略要求密码至少包含一个大写字母、一个小写字母、一位数字和一个特殊字符,密码总长度至少为8个字符 mysql> show databases; +--------------------+ | Database | +--------------------+ | information_schema | | mysql | | performance_schema | | sys | +--------------------+ 4 rows in set (0.00 sec)
数据库卸载
[root@redhat9-1 ~]# dnf remove mysql-server -y [root@redhat9-1 ~]# dnf remove mysql80-community-release -y [root@redhat9-1 ~]# rpm -qa | grep mysql [root@redhat9-1 ~]# rm -rf /var/lib/mysql/ /var/log/mysqld.log
数据库登录
登录数据库
连接本地数据库
[root@redhat9-1 ~]# mysql -u用户名 -p密码 -P端口号 -D 数据库名 -h localhost
远程登录数据库
[root@redhat9-1 ~]# mysql -uroot -pSlbrhce@317418 mysql> mysql> select user,host from mysql.user; +------------------+-----------+ | user | host | +------------------+-----------+ | mysql.infoschema | localhost | | mysql.session | localhost | | mysql.sys | localhost | | root | localhost | +------------------+-----------+ 4 rows in set (0.00 sec) mysql> update mysql.user set host='%' where user='root'; #'%'表示所有IP mysql> flush privileges; mysql> select user,host from mysql.user; +------------------+-----------+ | user | host | +------------------+-----------+ | root | % | | mysql.infoschema | localhost | | mysql.session | localhost | | mysql.sys | localhost | +------------------+-----------+ 4 rows in set (0.00 sec) mysql> exit; Bye [root@redhat9-1 ~]# mysql -uroot -pSlbrhce@317418 -P3306 -D mysql -h 192.168.2.138 mysql>
修改密码
可以登录的情况下修改密码
1.使用mysqladmin
[root@redhat9-1 ~]# mysqladmin -uroot -p password 'xxx'
2.使用alter语句
mysql> ALTER USER 'root'@'localhost' IDENTIFIED BY 'xxx';
3.使用set password
mysql> set password for root@localhost='xxx';
4.使用update语句清除密码
mysql> select user,host,authentication_string from mysql.user; mysql> update mysql.user set authentication_string='' where user='root'; mysql> flush privileges;
忘记密码的情况下更改密码
1.
[root@redhat9-1 ~]# systemctl stop mysqld [root@redhat9-1 ~]# mysqld --user=mysql --skip-grant-tables #指定用户,指定登录免密 [root@redhat9-1 ~]# mysql mysql> flush privileges; #刷新权限 mysql> alter user root@localhost identified by 'xxx'; #修改密码 mysql> exit [root@redhat9-1 ~]# killall mysqld [root@redhat9-1 ~]# systemctl start mysqld
2.
[root@redhat9-1 ~]# vim /tmp/mysql-init alter user root@localhost identified by 'xxx'; #写一条更改密码的命令 [root@redhat9-1 ~]# systemctl stop mysqld [root@redhat9-1 ~]# mysqld --init-file=/tmp/mysql-init --user=mysql & [root@redhat9-1 ~]# killall mysqld [root@redhat9-1 ~]# systemctl start mysqld