简体   繁体   English

连接到mysql数据库时出错,haskell

[英]Error while connecting to mysql database, haskell

I'm absolutely newbie to haskell, but I need to write a simple application to work with DB. 我是haskell的新手,但我需要编写一个简单的应用程序来处理DB。 I'm reading realworldhaskell book, chapter about using databases: http://book.realworldhaskell.org/read/using-databases.html . 我正在阅读realworldhaskell书,关于使用数据库的章节: http//book.realworldhaskell.org/read/using-databases.html I've installed HDBC and HDBC-mysql and trying to run: 我安装了HDBC和HDBC-mysql并尝试运行:

ghci> :module Database.HDBC Database.HDBC.MySQL

but receive error 但收到错误

attempting to use module ‘Database.HDBC.MySQL’ (./Database/HDBC/MySQL.hs) which is not loaded.

Does someone have some idea how to fix it and by what is is caused? 有人知道如何修复它以及造成的是什么? Thanks! 谢谢!

I could solve the problem installing mysql on MacOS, 我可以解决在MacOS上安装mysql的问题,

brew install mysql
mysql.server start ## mysqld

Followed by 其次是

cabal install HDBC
cabal install HDBC-mysql

Then could I create MySQL connection, 然后我可以创建MySQL连接,

import Control.Monad
import Database.HDBC
import Database.HDBC.MySQL

main = do conn <- connectMySQL MySQLConnectInfo { 
                    mysqlHost = "localhost", 
                    mysqlUser = "root", 
                    mysqlPassword = "", 
                    mysqlDatabase = "chat_server", 
                    mysqlPort = 3306, 
                    mysqlUnixSocket = "/tmp/mysql.sock", 
                    mysqlGroup = Just "test"
                  }

          rows <- quickQuery' conn "SELECT 1 + 1" []
          forM_ rows $ \row -> putStrLn $ show row

Note: you might need to update mysqlUnixSocket based on where is it located which can be found with following command: 注意:您可能需要根据mysqlUnixSocket在的位置更新mysqlUnixSocket ,可以使用以下命令找到它:

sudo find / -type s 

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM