mysql mariadb
数据库 安装 初始化 去掉 免密登录
一. mariadb
安装
mariadb
数据库用于centos
的官方指定数据库换源后直接使用命令安装即可
1 2 3 4
| yum install mariadb mariadb-server -y systemctl start mariadb systemctl status mariadb
|
二. mysql
安装
mysql是ubuntu指定的官方数据库 ubuntu直接使用apt命令安装即可 或使用脚本编译安装
1 2 3 4
|
sudo apt-get install mysql-server-5.7 mysql-client-5.7 systemctl restart mysql
|
centos rpm
安装 (install_mysql.sh
)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67
| #!/bin/bash
install_rpm() { echo -e "\033[36m 开始执行安装mysql 执行中################## \033[0m" sleep 5 rpm --import https://repo.mysql.com/RPM-GPG-KEY-mysql-2022 rpm -Uvh http://repo.mysql.com//mysql57-community-release-el7-7.noarch.rpm echo -e "\033[36m 开始安装mysql5.7 \033[0m" yum -y install mysql-community-server } mysql_information() { systemctl start mysqld systemctl status mysqld echo -e "\033[36m 登录信息写入: passwd.txt 文件 \033[0m" cat /var/log/mysqld.log |grep 'temporary password' > passwd.txt passwd1=`cat passwd.txt |awk 'NR==1{print $11}'` echo "账户: root \n 密码:${passwd1}" >>passwd.txt echo -e "\033[36m 初始账户是: root 初始密码是:${passwd1} \033[0m" } init_passwd() { read -p "输入需要更改的密码 建议密码包含 大小字母 小写字母 数字 标准字符:" passwd echo " 进入引导 ..... \n 引导成功. \n 0. 输入0获取帮助信息 \n 1. 输入1自动更改初始密码为: ${passwd} \n 2. 输入2退出 \n" while : do read -p "请输入数字0 1 2 : " n case $n in 0)echo -e "\033[36m 初次登录时请更改密码 \n 更改初始密码命令: ALTER USER 'root'@'localhost' IDENTIFIED BY '密码';\n 或 \n 1.输入1 自动执行更改密码,初始密码为: ${passwd} \n 2.输入2 退出 \n \033[0m" continue ;; 1)echo "\033[36m 开始初始化密码 \033[0m" User="root" chushi_Passwd=`cat passwd.txt |awk 'NR==1{print $11}'` change_passwd="ALTER USER root@localhost IDENTIFIED BY '${passwd}';" $(which mysql) -u${User} --connect-expired-password -p${chushi_Passwd} -e "${change_passwd} flush privileges;" [ $? = 0 ] && echo "初始化密码成功" || echo -e "\033[33m 初始化失败 原因:登录密码可能有特殊字符建议输入0查看帮助并手动执行 \033[0m" continue ;; 2)echo -e "\033[36m 退出 \033[0m" break ;; *)echo -e "\033[33m 输入错误请重新输入 \033[0m" continue ;; esac done } main() { install_rpm mysql_information init_passwd } main
|
windows server 2019安装mysql8.1.0 >> 见下方链接
windows server 2019
安装mysql8.1.0
三. 数据库安装后初始化
环境:mysql Ver 8.0.33-0ubuntu0.20.04.2 for Linux on x86_64 ((Ubuntu))
概览
1.初次安装mysql
时可直接在命令行输入mysql
即可登陆mysql
2.也可使用生成的初始密码登陆存放初始密码文件路径/etc/mysql/debian.cnf
后面此文件可能会消失没有初始化之前先保存
1.
初始化操作
1 2 3 4 5 6 7 8 9 10 11 12 13 14
| # 登录之前操作: mysql_secure_installation 数据库初始化详见“docker_mariadb/mysql安全策略” (可选) 此时直接输入命令:mysql即可登录 root登录之后操作: # 首先修改root密码 ALTER USER root@localhost IDENTIFIED BY '123456'; # 创建远程登陆用户 CREATE USER 'gegewu'@'%' IDENTIFIED BY '123456'; # 授权远程登录用户 (若需要远程登录还需要编辑:/etc/mysql/mysql.conf.d/mysqld.cnf 注释 bind=127.0.0.1) GRANT ALL PRIVILEGES ON *.* TO 'gegewu'@'%' IDENTIFIED BY '123456' WITH GRANT OPTION; # mysql8版本则使用下面cmd授权远程登陆 grant all on *.* to 'gegewu'@'%'; ( 赋予相应的权限 *.*代表所有的数据库都可以访问 ) # 刷新 flush privileges;
|
第一次使用ALTER
修改密码后 再次修改密码需要使用SET
语句
1 2 3 4 5 6 7 8 9 10 11 12 13
| # 修改数据库密码: SET PASSWORD FOR root@'localhost' = password('123456'); # 或者数据库外修改 mysqladmin -u root password '123456' mysqladmin -u root -p '123456' password '123456' # 授权本地zabbix用户操作所有数据库的所有权限: grant all on *.* to zabbix@localhost identified by "123456"; # 对单独库的权限: grant all privileges on zabbix.* to zabbix@localhost; # 创建数据库字符utf-8: create database zabbix character set utf8 collate utf8_bin; # 刷新: flush privileges;
|
其他常用语句
1 2 3 4 5 6 7
| # 设置和更改密码 SET PASSWORD FOR 'username'@'host' = PASSWORD('newpassword'); # 如果是当前登陆用户用: SET PASSWORD = PASSWORD("newpassword"); 例子: SET PASSWORD FOR 'pig'@'%' = PASSWORD("123456"); # 删除用户 DROP USER 'username'@'host';
|
创建远程登录用户:
2.
取消不需要输入密码 输入mysql
直接登录
mysql5.7只需要此一行即可完成配置
1 2 3 4
| UPDATE mysql.user SET plugin = 'mysql_native_password' WHERE user = 'root' AND host = 'localhost';
FLUSH PRIVILEGES;
|
https://blog.csdn.net/qq_45083975/article/details/120188794
(1).
修改配置文件 /etc/mysql/mysql.conf.d/mysqld.cnf
加入 在这个配置文件中的 [mysqld]
这一块中加入 skip-grant-tables
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17
| vim /etc/mysql/mysql.conf.d/mysqld.cnf [mysqld]
user = mysql pid-file = /var/run/mysqld/mysqld.pid socket = /var/run/mysqld/mysqld.sock port = 3306 basedir = /usr datadir = /var/lib/mysql tmpdir = /tmp lc-messages-dir = /usr/share/mysql skip-external-locking skip-grant-tables
systemctl restart mysql
|
(2).
输入命令直接登录mysql
遇见输入密码的提示直接回车即可,进入 MySQL
后,分别执行下面三句话
1 2 3 4 5 6 7 8 9 10
| # 登录mysql mysql # 或者 mysql -u root # 或者 mysql -u root -p # 输入命令直接登录mysql 遇见输入密码的提示直接回车即可,进入 `MySQL` 后,分别执行下面三句话 use mysql; update user set authentication_string=password("你的密码") where user="root"; flush privileges;
|
(3).
重新进入到 mysqld.cnf
文件中,把刚开始加的 skip-grant-tables
这条语句给注释掉
1 2 3 4 5 6
| vim /etc/mysql/mysql.conf.d/mysqld.cnf [mysqld]
systemctl restart mysql
|
再次在控制台输入 mysql -u root -p
,此时就得输入密码,才可以登录 MySQL
了。
(4).
如果还是可以直接登录则 将skip-grant-tables
的注释重新打开 输入mysql登录数据库
1 2 3 4 5 6 7 8 9
| # 查看详情 use mysql; select user,plugin from user; # 可以看到root的plugin字段是auth_socket 改为 mysql_native_password 即可 update user set authentication_string=password("你的密码") ,plugin='mysql_native_password' where user='root'; flush privileges; select user, plugin from user; # 此时注释skip-grant-tables重启数据库即可解决 systemctl restart mysql
|
四. 扩展
结语祝好!