Ruby on Rails 3 소켓 '/tmp/mysql'을 통해 로컬 MySQL 서버에 연결할 수 없습니다.OSX에서 '삭
표준 Rails3 환경, RVM 1.2.9, Rails 3.0.5, Ruby 1.9.2p180, MySQL2 Gem 0.2.7, mysql-5.5.10-osx10.6-x86_64를 사용하고 있습니다.
시 하는 오류rake db:migrate
데이터베이스 작성은 다음과 같습니다.
Can't connect to local MySQL server through socket '/tmp/mysql.sock' (2)
설정/삭제yml에는
development:
adapter: mysql2
host: localhost
username: root
password: xxxx
database: xxxx
내가 놓치고 있는 간단한 뭔가가 분명해
먼저 소켓 파일을 찾으려면:
mysqladmin variables | grep socket
이것은 나에게 다음과 같은 이점이 있다.
| socket | /tmp/mysql.sock |
다음 '하다', '어리다', '어리다'에 한 을 더하면 .config/database.yml
:
development:
adapter: mysql2
host: localhost
username: root
password: xxxx
database: xxxx
socket: /tmp/mysql.sock
찾았다!
host: localhost
config에서 "syslog/syslog.yml"로 합니다.host: 127.0.0.1
로컬 소켓이 아닌 TCP/IP를 통해 레일이 연결되도록 합니다.
development:
adapter: mysql2
host: 127.0.0.1
username: root
password: xxxx
database: xxxx
mysql 서버가 실행되고 있지 않을 수 있습니다.서버의 기동 방법에 대해서는, 다음과 같습니다.이것은 mysql 다운로드와 함께 제공되는 README 파일에서 발췌한 것입니다.
설치 후 터미널 창에서 다음 명령을 실행하여 MySQL을 시작할 수 있습니다.이 작업을 수행하려면 관리자 권한이 있어야 합니다.
스타트업 항목을 설치한 경우 다음 명령을 사용합니다.
shell> sudo /Library/StartupItems/MySQLCOM/MySQLCOM start
(ENTER YOUR PASSWORD, IF NECESSARY)
(PRESS CONTROL-D OR ENTER "EXIT" TO EXIT THE SHELL)
스타트업 항목을 사용하지 않는 경우 다음 명령어시퀀스를 입력합니다.
shell> cd /usr/local/mysql
shell> sudo ./bin/mysqld_safe
(ENTER YOUR PASSWORD, IF NECESSARY)
(PRESS CONTROL-Z)
shell> bg
(PRESS CONTROL-D OR ENTER "EXIT" TO EXIT THE SHELL)
이 문제를 해결하기 위한 옵션은 다음과 같습니다.
옵션 1: 호스트를 127.0.0.1로 변경
staging:
adapter: mysql2
host: 127.0.0.1
username: root
password: xxxx
database: xxxx
socket: your-location-socket
옵션 2: 서버 MySql에 2개의 접속이 있는 것 같습니다.소켓 파일의 위치를 찾으려면 , 다음의 순서에 따릅니다.
mysqladmin variables | grep socket
나는 다음과 같이 말한다.
mysqladmin: connect to server at 'localhost' failed
error: 'Can't connect to local MySQL server through socket '/Applications/XAMPP/xamppfiles/var/mysql/mysql.sock' (2)'
Check that mysqld is running and that the socket: '/Applications/XAMPP/xamppfiles/var/mysql/mysql.sock' exists!
또는
mysql --help
이 에러는, PHP 애플리케이션용의 OS X Version 10.9.5 에 XAMPP 를 인스톨 하고 있기 때문에 발생합니다.여기서 기본 소켓 위치 중 하나를 선택합니다.
기본 레일 앱으로 선택:
socket: /tmp/mysql.sock
PHP 앱의 경우 XAMPP를 설치하고 소켓을 설정합니다.
socket: /Applications/XAMPP/xamppfiles/var/mysql/mysql.sock
OS X에서의 기타 소켓 위치
MAMPP의 경우:
socket: /Applications/MAMP/tmp/mysql/mysql.sock
MySQL 패키지 설치의 경우:
socket: /tmp/mysql.sock
Mac OS X Server에 번들된 MySQL의 경우:
socket: /var/mysql/mysql.sock
Ubuntu의 경우:
socket: /var/run/mysqld/mysql.sock
옵션 3: 이러한 설정이 모두 동작하지 않는 경우는, 소켓의 위치를 떼어낼 수 있습니다.
staging:
# socket: /var/run/mysqld/mysql.sock
이게 도움이 됐으면 좋겠어요.
MySQL 서버를 시작하면 "/tmp/mysql.sock"이 자동으로 생성됩니다.따라서 레일 서버를 시작하기 전에 이 작업을 수행해야 합니다.
은 OSX MAMP에 .MySQL 소켓은 MySQL에 있습니다./Applications/MAMP/tmp/mysql/mysql.sock
나는 사용했다.locate mysql.sock
MySQL my my my my my 。
나의 ★★★★★★★★★★★★★★★★★.config/database.yml
★★★★
development:
adapter: mysql2
host: localhost
username: root
password: xxxx
database: xxxx
socket: /Applications/MAMP/tmp/mysql/mysql.sock
Mac OSX를 사용하는 경우
MySQL Unix 소켓의 기본 위치는 선택한 설치 유형에 따라 Mac OS X 및 Mac OS X 서버에서 다릅니다.
설치 유형별 Mac OS X에서의 MySQL Unix 소켓 위치
- MySQL ----------------------/tmp/mysql.sock 패키지 설치
- MySQL의 tarball -------------------------------------------------------------------------------------------------------------
- Mac OS X Server에 번들된 MySQL ---------/var/mysql/mysql.sock
database.yml을 변경하기만 하면 됩니다.socket: /tmp/mysql.sock
사용하고 있는 OS 및 설치 유형에 따라 적절한 위치를 가리키다
Mac OS X의 MySQL 소켓 기본 위치는 다음과 같습니다./var/mysql/mysql.sock
.
나도 같은 문제를 겪었지만, 내가 해야 할 일에 대해 차근차근 설명해 주는 대답은 없었다.이 오류는 소켓 파일이 아직 생성되지 않았기 때문에 발생합니다.필요한 것은 다음과 같습니다.
- mysql 서버를 부팅하면
/tmp/mysql.sock
를 작성하여 실행합니다.mysql server start
- 작업이 완료되면 앱 디렉토리로 이동하여 편집 후
config/database.yml
파일 작성 및 추가/편집socket: /tmp/mysql.sock
엔트리 - 달려.
rake:dbmigrate
다시 한 번 말하지만 모든 것이 잘 될 것이다
저는 생산 환경만 있는 것이 문제라는 것을 알았습니다.개발 환경이나 테스트 환경이 없습니다.
'RAILS_ENV=production'을 추가하여 다음 명령을 내림
bundle exec rake redmine:plugins:migrate RAILS_ENV=production
효과가 있었다
XAMPP를 통해 MYSQL을 실행하고 있는 경우:
XAMPP mysql 컨피규레이션파일(OSX)을 엽니다.
/어플리케이션/XAMPP/etc/my.cnf
소켓 경로를 복사합니다.
소켓 = /어플리케이션/XAMPP/xamppfiles/var/mysql/mysql.sock
레일 프로젝트의 데이터베이스 구성 파일(myproject/config/database)을 엽니다.yml
개발 데이터베이스 구성에 소켓 구성을 추가합니다.
-->
development:
adapter: mysql2
encoding: utf8
reconnect: false
database: difiuri_falcioni
pool: 5
username: root
password:
host: localhost
socket: /Applications/XAMPP/xamppfiles/var/mysql/mysql.sock
- 레일 서버 재시작
즐기세요 :)
다음과 같은 문제가 있습니다.소켓 '/var/run/mysqld/mysqld'를 통해 로컬 MySQL 서버에 연결할 수 없습니다.양말'
응답: $sudo service mysql 시작
mysqld 서비스가 정지되어 있기 때문에 같은 문제가 발생하고 있었습니다.
1:- 단말기에 접속하여 입력
sudo service mysqld restart
그러면 mysqld 서비스가 재시작되고 필요한 위치에 새 sock 파일이 생성됩니다.
Ubuntu 또는 기타 Linux에서 XAMPP 또는 LAMPP를 통해 MYSQL을 실행하는 경우 다음을 시도해 보십시오.
socket: /opt/lampp/var/mysql/mysql.sock
언급URL : https://stackoverflow.com/questions/5499035/ruby-on-rails-3-cant-connect-to-local-mysql-server-through-socket-tmp-mysql-s
'programing' 카테고리의 다른 글
값 오류:요소가 두 개 이상인 배열의 참값 값이 모호합니다.a.any() 또는 a.all()을 사용합니다. (0) | 2022.09.25 |
---|---|
요청이 있는 python에서 대용량 파일 다운로드 (0) | 2022.09.25 |
C에서 extern 키워드를 올바르게 사용하는 방법 (0) | 2022.09.25 |
MYSQL을 사용하여 난수 생성 (0) | 2022.09.25 |
SSR에서 Vuex와 함께 vue-instantsearch를 사용하는 방법 (0) | 2022.09.25 |