本次主要记录一下linux下mysql数据库的一些问题,也是之前经常用到的知识,这里简单总结一些问题,方便自己以后的回顾。原来一直使用的是阿里云的RDS数据库mysql版,主要是因为上次阿里云做活动可以免费用6个月,所以就体验了一把,反正是免费嘛。最近也是到期了,反正自己也有服务器,就不必再单独开一个了,但是上面的数据还是要迁移过来的,好在上面的数据量也不是很大,因此也比较方便。
1.首先登陆阿里云RDS数据库的控制台,然后选择导出,选择好数据库确定就会提示你下载到本地,结构和数据包括存储过程都可以保存下来,然后用xftp工具放到服务器上。
2.登录阿里云的服务器,我的是Ubuntu 18.04,然后先输入service mysql start开启mysql服务,然后mysql -u root -p 输入密码进入mysql。首先创建一个要导入的数据库名字,我这边一个叫workload,一个叫clouddisk,是我自己原来做的两个项目,之前数据是放在阿里云的RDS数据库上,现在也可以创建两个相同名字的数据库方便查看,建好之后查看一下。
1 mysql> show databases; 2 +--------------------+ 3 | Database | 4 +--------------------+ 5 | information_schema | 6 | clouddisk | 7 | mysql | 8 | performance_schema | 9 | sys |10 | test |11 | workload |12 +--------------------+13 7 rows in set (0.00 sec)
3.切换到你要导入的数据库,比如clouddisk。
1 mysql> use clouddisk;2 Reading table information for completion of table and column names3 You can turn off this feature to get a quicker startup with -A (这一行提示你可以在登录时通过 "mysql -u 用户名 -p 密码 -A" 的方式关闭数据库预读功能 当我们打开数据库,即use dbname 时,要预读数据库信息,当使用-A参数时,就不预读数据库信息。)4 5 Database changed
4.导入数据,命令为 source + 服务器上你存放的sql文件的位置。
1 mysql> source /root/sql/clouddisk.sql;
5.导入数据后查看数据是否完整,我这边因为有存储过程所以show procedure status查看一下存储过程,或者连接navicat后再查看。
1 mysql> show procedure status; 2 mysql> use clouddisk; 3 Database changed 4 mysql> show tables; 5 +---------------------+ 6 | Tables_in_clouddisk | 7 +---------------------+ 8 | t_account | 9 | t_fileinfo |10 | t_filetype |11 +---------------------+12 3 rows in set (0.00 sec)
6.导入完毕后可以用本地的navicat连接一下服务器上的mysql,输入主机ip、用户名和密码后报错 1045 验证失败,因为我的用户名和密码都是新设的,所以不可能是错的,只可能是服务器的mysql没有开远程访问的权限。直接运行命令让所有ip都可以远程访问。
1 mysql> grant all privileges on *.* to 'root'@'%' identified by '密码';
7.成功访问后,可以在navicat下查看自己的数据和存储过程是否调用正常。