MariaDB 10.4:(如果使用的为系统自带的数据库,版本号就比较低)
OS: 这里我推荐使用CentOS7.3以后的,最小化安装即可(不带图形化),安装完毕之后禁用SELinux、关闭防火墙(平时的练习就可以关闭这两个)。
安装常用软件:vim、wget、bash-completion、net-tools
确保机器联网,需要将虚拟机改到桥接模式,或者NAT模式。
在我们安装完成操作系统后就需要配置一个数据库的yum源(这里我们安装的是10.4版本):
[root@localhost] vim /etc/yum.repo.d/mariadb.repo
[mariadb]
name=mariadb-10.4
baseurl=http://mirrors.ustc.edu.cn/mariadb/yum/10.4/centos7-amd64/
gpgcheck=0
在对数据库进行安装
[root@localhost ~]# yum install mariadb-server -y
[root@localhost ~]# systemctl start mariadb
[root@localhost ~]# systemctl enable mariadb
或者使用下面命令启动:
[root@localhost ~]# systemctl enable --now mariadb[root@kongd ~]# netstat -lnupt | grep :3306 //通过查看3306端口,发现服务已经启动
tcp 0 0 0.0.0.0:3306 0.0.0.0:* LISTEN 38251/mysqld了解其他数据库端口:
MS SQL:1433
Oracle:1521[root@localhost ~]# firewall-cmd --permanent --add-service=mysql //如果我们关闭了防火墙的话就可以不用敲一下命令
success
[root@localhost ~]# firewall-cmd --reload
success
[root@localhost ~]# mysql_secure_installation
设置root密码
禁用root远程登录
移除匿名用户
移除test数据库
除过设置root密码外,其余步骤我们一直回车键即可。
没有密码:
[root@localhost ~]# mysqladmin -uroot password "123456"
修改密码:
[root@localhost ~]# mysqladmin -uroot -p"888888" password "123456"
登录后修改:
[root@localhost ~]# mysql -uroot -p密码
方法1:
[root@localhost ~]# alter user root@'localhost' identified by '123456'; // 5.5版本不支持,系统自带
方法2:
[root@localhost ~]# set password for root@localhost = password('12345');
方法3:(这是数据库的权限表,不建议使用)
MariaDB [(none)]> update mysql.user
-> set password=password('123456')
-> where User="root" and Host="localhost";
MariaDB [(none)]> flush privileges;
以下是10.4重置方式。
1)先停止数据库:
[root@localhost ~]# systemctl stop mariadb
重启时跳过权限表:
[root@localhost ~]# mysqld --skip-grant-tables --user=mysql
当敲下这条命令后就会卡在这里,这时我们再重新打开一个远程连接执行以下命令。
2)登录数据库:(这里登陆使用另一个终端连接)
不用指定用户和密码,这里会默认使用本地登录的用户对数据库进行登录
MariaDB [(none)]> use mysql //登录数据库
3)刷新权限表:
[root@localhost ~]# FLUSH PRIVILEGES //不区分大小写
4)重置密码:
[root@localhost ~]# SET PASSWORD FOR 'root'@'localhost' = PASSWORD('123456'); //不区分大小写
5.5 版本重置root密码:这里就不做演示了
1) 停止数据库
[root@localhost ~]# systemctl stop mariadb
2) 启动时加上--skip-grant-tables 跳过权限表
[root@localhost ~]# mysqld_safe --skip-grant-tables --user=mysql
3) 登录数据库,修改密码
[root@localhost ~]# mysql
MariaDB [(none)]> update mysql.user
-> set password=password('123')
-> where User="root" and Host="localhost";
Query OK, 1 row affected (0.00 sec)
Rows matched: 1 Changed: 1 Warnings: 0
MariaDB [(none)]> flush privileges;
Query OK, 0 rows affected (0.00 sec)
验证:但是我们最初的终端还处于进程运行状态无法进行其他操作,我们在第二个连接中终止mysql进程。
停止:
[root@localhost ~]# yum install psmisc -y //先装这个包
[root@localhost ~]# killall -9 mysqld //终结进程,多敲几次,直到出现提示为止。
mysqld: no process found
启动:
[root@localhost ~]# systemctl start mariadb
[root@localhost ~]# mysql -uroot -p123456 -e 'show databases;' //如果有显示,证明重置成功
命令行:
[root@localhost ~]# mysql -u root -p123456 -D mysql -h localhost
-u:用户名
-p:密码,注意-p和密码不能有空格
-D:数据库名
-h:主机
windows下的客户端远程连接数据库软件(GUI):
1、Navicat for MySQL
2、SQLyog:
链接:https://pan.baidu.com/s/1GuE8tpXW36PP_N-7dZzXEg
提取码:sx7p
既然要远程登录,就要有用户名和密码,当然我们不能使用root用户来进行远程登录。
授权给admin用户:
[root@localhost ~]# grant all on *.* to admin@'%' identified by '123456'; //授权所有数据库和表的访问权限给admin用户,使用任何方式登录,密码为123456
远程登录数据库;
可以看到我们使用图形化界面,与命令行一致。
设置服务器默认字符集
[root@localhost ~]# cd /etc/my.cnf.d/
[root@localhost my.cnf.d]# ls
enable_encryption.preset mysql-clients.cnf server.cnf
[root@localhost my.cnf.d]# vim server.cnf //编辑server.cnf配置文件,在[mysqld]下方添加如下字段
[mysqld]
character-set-server=utf8
collation-server=utf8_general_ci
设置数据库客户端默认字符集
[root@localhost my.cnf.d]# vim mysql-clients.cnf
[mysql]
default-character-set=utf8
重启服务:
[root@localhost my.cnf.d]# systemctl restart mariadb
测试:
MariaDB [(none)]> show variables like 'character%'; //使用模糊查询查看结果
MariaDB [(none)]> show variables like 'collation%'; //发现已经为utf8类型