0.环境
- 系统 deepin linux 23 测试版
- mariadb版本 Server version: 10.5.11-MariaDB-1 Debian 11 官网 mariadb.org/
Latest MariaDB releases 10.8.2 (RC), 10.7.3 **, ** 10.6.7 , 10.5.15, 10.4.24 , 10.3.34 , 10.2.43 . Vote on your current version.
可见我的不是最新的,当然很稳定。
1.一条命令安装mariadb
sudo apt install mariadb-server
2.无密码模式启动并进入mariadb
sudo mariadb --defaults-file=/etc/mysql/debian.cnf
系统提示:
Welcome to the MariaDB monitor. Commands end with ; or \g. Your MariaDB connection id is 31 Server version: 10.5.11-MariaDB-1 Debian 11 Copyright (c) 2000, 2018, Oracle, MariaDB Corporation Ab and others. Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
3.修改密码
常规的修改密码命令报错,很纳闷,具体如下:
MariaDB [mysql]> select user, host from user; +-------------+-----------+ | User | Host | +-------------+-----------+ | mariadb.sys | localhost | | mysql | localhost | | root | localhost | +-------------+-----------+ 3 rows in set (0.002 sec) MariaDB [mysql]> update user set Password=PASSWORD('root') where User='root' and Host='localhost'; ERROR 1356 (HY000): View 'mysql.user' references invalid table(s) or column(s) or function(s) or definer/invoker of view lack rights to use them
后来反反复复查找,找到如下格式:root'@'localhost',并不是直接在表中改,一次成功。。。。。。
MariaDB [mysql]> SET PASSWORD FOR 'root'@'localhost' = PASSWORD('root'); Query OK, 0 rows affected (0.005 sec)
具体验证登录如下:
(base) livingbody@livingbody-PC:~$ mysql -uroot -proot Welcome to the MariaDB monitor. Commands end with ; or \g. Your MariaDB connection id is 36 Server version: 10.5.11-MariaDB-1 Debian 11 Copyright (c) 2000, 2018, Oracle, MariaDB Corporation Ab and others. Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
4.总结
此次修改密码成功,主要有两个点:
- 1.特权模式启动 主要参考了etc/mysql/debian.cnf 文件头的说明,不然还真搞不定
# THIS FILE IS OBSOLETE. STOP USING IT IF POSSIBLE. # This file exists only for backwards compatibility for # tools that run '--defaults-file=/etc/mysql/debian.cnf' # and have root level access to the local filesystem. # With those permissions one can run 'mariadb' directly # anyway thanks to unix socket authentication and hence # this file is useless. See package README for more info. [client] host = localhost user = root [mysql_upgrade] host = localhost user = root socket=/var/run/mysqld/mysqld.sock # THIS FILE WILL BE REMOVED IN A FUTURE DEBIAN RELEASE.
- 2.密码修改 直接修改表不行,需要系统命令来修改,这个和老版本的mysql略有区别,特记录一下。
希望该文对大家有用,Good Luck!