Mysql导出导入

导出数据库
导出数据和表结构:
格式:
mysqldump -u 用户名 -p密码 数据库名 > 数据库名.sql
举例:
/usr/local/mysql/bin/ mysqldump -uroot -p abc > abc.sql
敲回车后会提示输入密码

只导出表结构
格式:mysqldump -u用户名 -p密码 -d 数据库名 > 数据库名.sql
举例:/usr/local/mysql/bin/ mysqldump -uroot -p -d abc > abc.sql
注:/usr/local/mysql/bin/ —> mysql的data目录

导入数据库
首先建空数据库
mysql>create database abc;

导入数据库
方法一:

选择数据库
mysql>use abc;
设置数据库编码
mysql>set names utf8;
导入数据(注意sql文件的路径)
mysql>source /home/abc/abc.sql;
方法二:
mysql -u用户名 -p密码 数据库名 < 数据库名.sql
mysql -uabc_f -p abc < abc.sql

phpmyadmin不能登录

安装好mariadb或mysql和phpmyadmin以后,用web方式用root登录phpmyadmin可能会无法登录,提示密码错误一类。

实际上密码是对的,只是本地安全策略一类的问题。解决办法很多,比如修改phpmyadmin设置或是新添加用户,但最简单的是SSH里面输入以下语句:

echo "UPDATE mysql.user SET plugin = 'mysql_native_password' WHERE user = 'root' AND plugin = 'unix_socket';FLUSH PRIVILEGES;" | mysql -u root -p

OR

mysqladmin -u root password

MySQL gpg key

最近更新是发现mysql无法更新了,原因是gpg key过期。MySQL为社区版本的MySQL 运行自己的包存储库。它们支持yumapt包管理器,由子目录分隔。到目前为止一切顺利,但似乎之前的 GPG(用于签署包)已被替换。这会在运行apt-get update(或 apt update)时导致错误

查看存储库时,无法识别特定的 APT gpg 密钥。这些文件通常以 .gpg、.gnupg、.key 或类似的后缀结尾。但是,在存储库的顶级目录中还有一个有趣的文件:RPM-GPG-KEY-mysql-2022

为什么耐人寻味?因为文件以 RPM 开头,建议这个键只用于 rpm 包(用于 yum 包管理器)。让我们使用 apt-key 导入该文件:

curl -s http://repo.mysql.com/RPM-GPG-KEY-mysql-2022 | apt-key add -

接下来运行apt update 就可以发现可以正常更新了。

some trick

  • debian/Ubuntu更新时候出现:
    E: Could not get lock /var/lib/dpkg/lock - open (11: Resource temporarily unavailable)
    E: Unable to lock the administration directory (/var/lib/dpkg/)

    出现这个问题可能是有另外一个程序正在运行,导致资源被锁不可用。而导致资源被锁的原因可能是上次运行安装或更新时没有正常完成,进而出现此状况,解决的办法其实很简单: 继续阅读“some trick”