安装
ubuntu上安装mysql非常简单只需要几条命令就可以完成。
sudo apt-get install mysql-server //服务端
sudo apt-get install mysql-client //客户端
sudo apt-get install libmysqlclient-dev //程序编译时链接的库
安装过程中会提示设置密码什么的,注意设置了不要忘了,安装完成之后可以使用如下命令来检查是否安装成功:
有个坑,可能没有出现输密码环节,参考 在Ubuntu 18.04 下安装mysql,没有初始密码,重设root密码
sudo netstat -tap | grep mysql
通过上述命令检查之后,如果看到有mysql 的socket处于 listen 状态则表示安装成功。然后输入下面命令登陆:
mysql -u root -p
-u 表示选择登陆的用户名, -p 表示登陆的用户密码,上面命令输入之后会提示输入密码,此时输入密码就可以登录到mysql。
或者这样登陆:
#服务启动后端口查询
sudo netstat -anp | grep mysql
#连接数据库
mysql -h 127.0.0.1 -P 3306 -uroot -p123456
#-h为远程IP,-P为端口号,-u为用户名,-p为密码
mysql默认端口就是3306.
管理
说明:通过这种方式安装好之后开机自启动都已经配置好,和命令行上的环境变量,无需手动配置。
安装好之后会创建如下目录:
- 数据库目录:/var/lib/mysql/
- 配置文件:/usr/share/mysql(命令及配置文件) ,/etc/mysql(如:my.cnf)
- 相关命令:/usr/bin(mysqladmin mysqldump等命令) 和/usr/sbin
- 启动脚本:/etc/init.d/mysql(启动脚本文件mysql的目录)
#服务管理
#启动
sudo service mysql start
#停止
sudo service mysql stop
#服务状态
sudo service mysql status
卸载
#首先使用以下命令删除MySQL服务器:
sudo apt-get remove mysql-server
#然后,删除随MySQL服务器自动安装的任何其他软件:
sudo apt-get autoremove
#卸载其他组件:
sudo apt-get remove <<package-name>>
#查看从MySQL APT存储库安装的软件包列表:
dpkg -l | grep mysql | grep ii
测试
登陆mysql数据库,然后通过show databases; 就可以查看当前的数据库。
我们选择 mysql数据库就行下一步操作,使用use mysql命令,显示当前数据库的表单:show tables
写一个简单的程序来访问该数据库,实现show tables功能:
#include <mysql/mysql.h>
#include <stdio.h>
#include <stdlib.h>
int main()
{
MYSQL *conn;
MYSQL_RES *res;
MYSQL_ROW row;
char server[] = "localhost";
char user[] = "root";
char password[] = "mima";
char database[] = "mysql";
conn = mysql_init(NULL);
if (!mysql_real_connect(conn, server,user, password, database, 0, NULL, 0))
{
fprintf(stderr, "%s\n", mysql_error(conn));
exit(1);
}
if (mysql_query(conn, "show tables"))
{
fprintf(stderr, "%s\n", mysql_error(conn));
exit(1);
}
res = mysql_use_result(conn);
printf("MySQL Tables in mysql database:\n");
while ((row = mysql_fetch_row(res)) != NULL)
{
printf("%s \n", row[0]);
}
mysql_free_result(res);
mysql_close(conn);
printf("finish! \n");
return 0;
}
编译代码的时候需要链接mysql的库,可以通过如下方式编译:
g++ -Wall mysql_test.cpp -o mysql_test -l mysqlclient
然后运行编译好的代码:
可见结果和使用SQL语句 show tables 是一样的。
参考链接:
1、https://www.cnblogs.com/zhuyp1015/p/3561470.html?tdsourcetag=s_pctim_aiomsg
2、https://blog.csdn.net/qq_24326765/article/details/81917075?tdsourcetag=s_pctim_aiomsg