发表于: 2018-10-14 22:19:48
2 567
今天完成的事情:
太累了,学不进去了,就把今天碰到的问题陈述一下吧
1.今天在centOS7.2上折腾了好久(迁移一个数据库我从早上一直到00:44才弄完)
交付的档案里写着服务器里有mysql,然后我按照源码上的密码登不进去。。。
然后有查看了mysql服务是否启动,进程里也显示有mysqld的进程。然后我想找mysql根目录设置跳过密码。结果死活找不到根目录的位置。所有当时懵了。mysql的服务启动的,但是根目录没有,输入mysql -hlocalhost -uroot -p
能显示要求输入密码,然后源码上的mysql密码输入进去还是错的,最后线上的网站显示能读取mysql数据库内容???
无奈去请教总监,这才得知centOS里面是装的MariaDB。
MariaDB数据库管理系统是MySQL的一个分支,主要由开源社区在维护,采用GPL授权许可。开发这个分支的原因之一是:甲骨文公司收购了MySQL后,有将MySQL闭源的潜在风险,因此社区采用分支的方式来避开这个风险。 MariaDB的目的是完全兼容MySQL,包括API和命令行,使之能轻松成为MySQL的代替品。
膜拜一下,创始人因为怕被自己的成果被做成闭源,重新写了一个数据库???666
然后装MariaDB用的yum方法。我又一次遇到了深坑,下载数据平均3kb/s???等它下完,我要等到猴年马月去了。。。
解决办法:更换国内Mariadb源
首先全部删除mysql/mariadb
使用
rpm -qa | grep MariaDB
和
rpm -qa | grep mysql
搜索现有的包,
如果存在(删不了,就一个一个删),使用
rpm -e --nodeps MariaDB-*
全部删除。
然后,创建MariaDB.repo文件
vim /etc/yum.repos.d/MariaDB.repo
插入一下内容,第二个我换成了国内源中科大的,,选择安装你需要的版本:
[mariadb]
name = MariaDB
baseurl = http://yum.mariadb.org/10.1/centos7-amd64
gpgkey=https://yum.mariadb.org/RPM-GPG-KEY-MariaDB
gpgcheck=1
[mariadb]
name = MariaDB
baseurl = https://mirrors.ustc.edu.cn/mariadb/yum/10.1/centos7-amd64/
gpgkey=https://mirrors.ustc.edu.cn/mariadb/yum/RPM-GPG-KEY-MariaDB
gpgcheck=1
系统及版本选择,你可以根据这个网址(国内)去选择你想安装centos7 amd64位其他版本号的版本,网址。直接修改baseurl中的版本号即可。安装Mariadb之前,你可以先导入GPG key
rpm --import https://yum.mariadb.org/RPM-GPG-KEY-MariaDB
运行安装命令安装MariaDB(安装过程可能会比较漫长,使用中科大的就快了)
这里的快我得说具体一点,刚才用的原始网址,3KB/s.
现在,换了中科大的源直接飙升到1.3MB/s从老牛拉破车,直接彪到火箭上月球。
之后就是启动服务,设置开机启动,设置密码,允许远程访问,配置字符集,添加用户权限跟mysql没有区别。
接下来是第三个深坑
原来的数据库中有两个数据库名字叫
bigdata-base
bigdata-knowledge
我创建数据库的时候提示我中间的横杠不允许,然后查了数据库命名规则没说 ‘ - ’ 不让用啊,于是用了中文的'——' 去掉一个‘—’,创建了数据库,然后把数据内容都导进去,想想不对劲,又查了源码,发现就是
bigdata-base
bigdata-knowledge
再查看了就服务器的数据库也是这两个,那么就是能用‘ - ’喽???为什么我死活创建不了带‘ - ’的名字?于是乎我又一次陷入懵圈的境地。。。
解决办法:我查到了导出整个MariaDB所有数据的方法:
mysqldump -uroot -p --all-databases > sqlfile.sql
然后用atom读取了一下里面的内容,找到创建这两个数据库的语句
CREATE DATABASE /*!32312 IF NOT EXISTS*/ `bigdata-base` /*!40100 DEFAULT CHARACTER SET utf8 */;
CREATE DATABASE /*!32312 IF NOT EXISTS*/ `bigdata-knowledge` /*!40100 DEFAULT CHARACTER SET utf8 */;
所以系统给了创建语句,它统一用了*/ `xxx` /*的形式输入数据库名,前后还加了/*!32312和!40100疑似ASCII码的东西。。。这是程序员都写不出来这样的语句啊!!!不过好在都创建好,导入数据内容。MariaDB今天总算是迁移好了。
明天计划的事情:
这两天一直再迁服务器内容,够呛啊
遇到的问题:
不知道师兄有没有办法,就是现在公司用的是网易云的服务器,它是一台服务器连接外网,然后我这边有四台服务器组成的内网,我要访问这4台服务器,需要先访问那公共的外网服务器,然后用ssh+ip1-4进入这四台服务器。原先用的是阿里的服务器,每台都能连外网到没什么问题。但是现在代码用的是SSM框架的springboot。里面连接数据库应该怎么写?原先的代码配置文件是这样的:
jdbc.driver=com.mysql.jdbc.Driver
jdbc.url=jdbc:mysql://localhost:3306/tests?useUnicode=true&characterEncoding=utf-8&autoReconnect=true
jdbc.username=root
jdbc.password=123456
现在要经过一个中间站服务器再访问内网服务器,最后访问内网服务器里的MariaDB,这个配置文件应该怎么改?
收获:
今天跟经理说想写脚本来辅助迁移服务器,被提醒赶紧迁完,别整幺蛾子。
评论