CentOS7默认数据库是mariadb,配置等用着不习惯,因此决定改成mysql,但是CentOS7的yum源中默认好像是没有mysql的。为了解决这个问题,我们要先下载mysql的repo源。
1.下载mysql的repo源
$ wget https://repo.mysql.com/mysql-community-release-el7-5.noarch.rpm
2.安装mysql-community-release-el7-5.noarch.rpm包
$ sudo rpm -ivh mysql-community-release-el7-5.noarch.rpm
安装这个包后,会获得两个mysql的yum repo源:/etc/yum.repos.d/mysql-community.repo,/etc/yum.repos.d/mysql-community-source.repo。
3.安装mysql
$ sudo yum install mysql-server
根据提示安装就可以了,不过安装完成后没有密码,需要重置密码
4.重置mysql密码
$ mysql -u root
登录时有可能报这样的错:ERROR 2002 (HY000): Can‘t connect to local MySQL server through socket ‘/var/lib/mysql/mysql.sock‘ (2),原因是/var/lib/mysql的访问权限问题。下面的命令把/var/lib/mysql的拥有者改为当前用户:
$ sudo chown -R root:root /var/lib/mysql
重启mysql服务
$ service mysqld restart
接下来登录重置密码:
$ mysql -u root //直接回车进入mysql控制台
mysql > use mysql;
mysql > update user set password=password('123456') where user='root';
mysql > exit;
#include
2 #include
3
4 int main(int argc,char *argv[])
5 {
6 MYSQL conn;
7 int res;
8 mysql_init(&conn);
9 if(mysql_real_connect(&conn,"localhost","root","","test",0,NULL,CLIENT_FOUND_ROWS)) //"root":数据库管理员 "":root密码 "test":数据库的名字
10 {
11 printf("connect success!n");
12 res=mysql_query(&conn,"insert into test values('user','123456')");
13 if(res)
14 {
15 printf("errorn");
16 }
17 else
18 {
19 printf("OKn");
20 }
21 mysql_close(&conn);
22 }
23 return 0;
24 }
代码不是很难理解,就不解释了。
编译程序
使用的编译代码(注意哪两个不是单引号而是反单引号)
g++ test.cpp `mysql_config --cflags --libs` -o test
运行代码
./test
再次查看数据库
mysql>use test;
mysql>select * from test;
这样就可以查看到插入的信息了。
fatal error: mysql.h: No such file or directory
有可能是没有安装mysql链接库
可以用yum search mysql或者apt-cache search mysql搜索mysql相关安装文件
[root@zl myPrj]# yum list "*mysql*" | grep devel
libgda-mysql-devel.i686 1:4.2.4-2.fc14 updates
mysql++-devel.i686 3.1.0-2.fc14 fedora
mysql-connector-c++-devel.i686 1.1.0-0.4.bzr895.fc14 updates
mysql-devel.i686 5.1.60-1.fc14 updates
mysql-embedded-devel.i686 5.1.60-1.fc14 updates
[root@zl myPrj]# yum -y install mysql++-devel.i686