我最近接手了一个10年前创建的旧项目.它使用MySQL 5.1.
除此之外,我需要将默认字符集从latin1更改为utf8.
举个例子,我有这样的表:
CREATE TABLE `users` (
`id` int(10) unsigned NOT NULL AUTO_INCREMENT,
`first_name` varchar(45) CHARACTER SET latin1 COLLATE latin1_general_ci DEFAULT NULL,
`last_name` varchar(45) CHARACTER SET latin1 COLLATE latin1_general_ci DEFAULT NULL,
`username` varchar(127) CHARACTER SET latin1 COLLATE latin1_general_ci NOT NULL,
`email` varchar(127) CHARACTER SET latin1 COLLATE latin1_general_ci NOT NULL,
`pass` varchar(20) CHARACTER SET latin1 COLLATE latin1_general_ci NOT NULL,
`active` char(1) CHARACTER SET latin1 COLLATE latin1_general_ci NOT NULL DEFAULT 'Y',
`created` datetime NOT NULL,
`last_login` datetime DEFAULT NULL,
`author` varchar(1) …Run Code Online (Sandbox Code Playgroud) 我正在接管一个旧的Rails应用程序.一年没人接触过它.最后一位开发者在2015年4月离职,我无法联系他.我确实有ssh访问服务器,我可以访问Github仓库.
我不知道任何用户名/密码.
如果我ssh到服务器并且我捕获了database.yml文件,我会看到类似的东西:
staging:
adapter: mysql2
encoding: utf8
pool: 5
socket: /var/lib/mysql/mysql.sock
database: o_wawa_stage
username: wawa_stage
password: <%= ENV['STAGE_DATABASE_PASSWORD'] %>
host: access.dmedia.com
Run Code Online (Sandbox Code Playgroud)
如果我运行"printenv"命令,那么我没有看到任何这些变量.我假设它们只是由Rails环境加载.
我想我可以编辑模板,用一堆"put"语句吐出值,但我认为必须有一个更明显的方法来做到这一点,除了打印公众可以看到的数据?
如果我尝试运行"rails console",我会得到:
Rails Error: Unable to access log file. Please ensure that /var/www/haha/production/releases/20150118213616/log/development.log exists and is writable (ie, make it writable for user and group: chmod 0664 /var/www/haha/production/releases/20150118213616/log/development.log). The log level has been raised to WARN and the output directed to STDERR until the problem is fixed.
Run Code Online (Sandbox Code Playgroud)
我在这个盒子上没有sudo,所以我无法解决这个错误.
Mongo 3.2版
我在AWS的一个实例上设置了MongoDB.
然后我将其添加到安全组,作为防火墙的例外.具体来说,我将其设置为客户TCP规则,端口27017除外.
如果我ssh到实例并执行:
netstat -pl
Run Code Online (Sandbox Code Playgroud)
我可以在输出中看到:
tcp 0 0 localhost:27017 : LISTEN 2025/mongod
所以mongodb正在运行,它正在侦听端口27017,并且防火墙添加了27017的例外.
但在我的本地Mac上,当我尝试连接时,我收到一个错误:
mongo ec2-154-52-32-196.compute-1.amazonaws.com:27017/vvvvv -u ccccc -p xxxx
MongoDB shell version: 3.2.6
connecting to: ec2-54-152-232-96.compute-1.amazonaws.com:27017/vvvvv
2016-05-06T09:52:07.281-0400 W NETWORK [thread1] Failed to connect to 54.152.232.96:27017, reason: errno:61 Connection refused
2016-05-06T09:52:07.281-0400 E QUERY [thread1] Error: couldn't connect to server ec2-54-152-232-96.compute-1.amazonaws.com:27017, connection attempt failed :
connect@src/mongo/shell/mongo.js:231:14
@(connect):1:6
exception: connect failed
Run Code Online (Sandbox Code Playgroud)
我还需要做什么才能连接?
[[更新]]
所以我:
emacs /etc/mongod.conf
Run Code Online (Sandbox Code Playgroud)
我添加0.0.0.0:
net:
port: 27017
bindIp: 127.0.0.1,0.0.0.0
Run Code Online (Sandbox Code Playgroud)
然后:
service mongod restart
mongod stop/waiting
mongod …Run Code Online (Sandbox Code Playgroud)