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表插入一条记录, 效果一样。