Mysql 下载安装及链接错误处理

Mysql 安装最方便的是用rpm包, 官方网站有下载。

地址为  http://dev.mysql.com/downloads/mysql/5.5.html#downloads 

 

对开发人员来说, 需要下载的包有几个:

 

Mysql-server   服务端

Mysql-client     客户端,通过 mysql -uroot -p  可以进入到服务器端查看数据库(看远程主机用 mysql -uroot -p -h192.168.2.33)

Mysql-devel     开发需要的头文件,动态库静态库等。 开发的程序需要链接 libmysqlclient.a 这个静态库

 

 

 

如果你在编译链接的时候碰到下面的错误提示:

 

/usr/bin/ld: skipping incompatible /usr/lib/mysql/libmysqlclient.a when searching for -lmysqlclient
/usr/bin/ld: skipping incompatible /usr/lib/libmysqlclient.so when searching for -lmysqlclient
/usr/bin/ld: cannot find -lmysqlclient
collect2: ld

 

那么原因就是 64位 32位 造成的不兼容

 

可能你是在 64位的系统下面安装了32位的mysql。 你需要安装64位的mysql。

 

并且设置你的Makefile文件的链接路径为  /usr/lib64/mysql

 

 

如果再碰到下面的错误:

/usr/bin/ld: /usr/lib/mysql/libmysqlclient.a(crypto_wrapper.cpp.o)(.data.rel.ro._ZTVN8TaoCrypt9Mode_BASEE[vtable for TaoCrypt::Mode_BASE]+0x14): unresolvable R_386_32 relocation against symbol `__cxa_pure_virtual@@CXXABI_1.3'
/usr/bin/ld: final link failed: Nonrepresentable section on output
collect2: ld 返回

 

那么你很不幸, 这个是Mysql 的BUG, 我下载了 MySQL-devel-5.5.9-1.rhel5.i386.rpm 这个版本的安装包,

安装后总是提示上面的错误, 找了很多资料都没有解决。

 

最后差点拿源码包准备安装了, 后来做最后一次尝试, 安装了上一个版本

MySQL-devel-community-5.1.55-1.rhel5.i386.rpm   后就正常了。。。。。

 

Mysql 方面的链接错误可能还有其他的, 在编写Makefile文件的时候, 不但要 链接 libmysqlclient.a 文件, 还要链接

 

libcrypto.a 这个文件, 否则还有很多的链接错误等着你,如下所示:

 

LDFLAGS = -lstdc++  -lpthread  -lmysqlclient  -lcrypto

 

 

 

Mysql API 的封装其实很简单。

 

常用的 API 就那么几个。。。。

 

如果大家有需要, 可以联系我。。。。

 

 下来再介绍一下 让远程主机可以访问mysql, 因为mysql默认安装后是只能本机访问, 要修改了远程主机可以访问,只需要执行

下面的授权语句即可。

 

GRANT ALL PRIVILEGES ON *.* TO 'root'@'%'IDENTIFIED BY '111111' WITH GRANT OPTION;

 

上面这句话中的 root 代表用户, *.* 代表权限, 111111 代表密码

 

执行后在系统数据库 mysql 中的 user 表里多了一行记录, 如下所示:

 

 

你也可以直接用insert 语句给 user表插入一条记录, 效果一样。

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

langeldep

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值