ubuntu上安装mysql非常简单只需要几条命令就可以完成。
sudo apt-get install mysql-server
apt-get isntall mysql-client
sudo apt-get install libmysqlclient-dev
安装过程中会提示设置密码什么的,注意设置了不要忘了,安装完成之后可以使用如下命令来检查是否安装成功:
sudo netstat -tap | grep mysql
通过上述命令检查之后,如果看到有mysql 的socket处于 listen 状态则表示安装成功。
登陆mysql数据库可以通过如下命令:
mysql -u root -p
-u 表示选择登陆的用户名, -p 表示登陆的用户密码,上面命令输入之后会提示输入密码,此时输入密码就可以登录到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 -lmsqlclient
然后运行编译好的代码:
可见结果和使用SQL语句 show tables 是一样的。
make it simple, make it happen
进入安装mysql软件目录:执行命令 cd /usr/local/mysql
修改当前目录拥有者为mysql用户:执行命令 chown -R mysql:mysql ./
安装数据库:执行命令 ./scripts/mysql_install_db --user=mysql
修改当前目录拥有者为root用户:执行命令 chown -R root:root ./
修改当前data目录拥有者为mysql用户:执行命令 chown -R mysql:mysql data
到此数据库安装完毕
启动mysql服务和添加开机启动mysql服务:
添加开机启动:执行命令cp support-files/mysql.server /etc/init.d/mysql,把启动脚本放到开机初始化目录
启动mysql服务:执行命令service mysql start
执行命令:ps -ef|grep mysql 看到mysql服务说明启动成功,如图
修改mysql的root用户密码,root初始密码为空的:
执行命令:./bin/mysqladmin -u root password '密码'
让mysql可以远程访问
首先编辑文件/etc/mysql/mysql.conf.d/mysqld.cnf:
保存退出,然后进入mysql服务,执行授权命令:
进入mysql命令模式 >>>
将root用户授权给所以连接:grant all privileges on *.* to 'root'@'%' identified by 'xxxxxx';
最后一个为mysql密码
让权限立即生效:flush privileges;
到此所以操作完成,可以在任何主机连接此mysql数据库服务器了。
这里面可能会碰到 3306 端口被防火墙屏蔽的问题。
首先查看端口是否打开 netstat -an|grep 3306
打开mysql配置文件vim /etc/mysql/mysql.conf.d/mysqld.cnf
将bind-address = 127.0.0.1注销
重启动ubuntu
再次查看端口是否打开 netstat -an|grep 3306
================================
把mysql客户端放到默认路径:
ln -s /usr/local/mysql/bin/mysql /usr/local/bin/mysql
注意:建议使用软链过去,不要直接包文件复制,便于系统安装多个版本的mysql
Linux下mysql的卸载:
1、查找以前是否装有mysql
命令:rpm -qa|grep -i mysql
可以看到mysql的两个包:
mysql-4.1.12-3.RHEL4.1
mysqlclient10-3.23.58-4.RHEL4.1
2、删除mysql
删除命令:rpm -e --nodeps 包名
( rpm -ev mysql-4.1.12-3.RHEL4.1 )
3、删除老版本mysql的开发头文件和库
检查各个mysql文件夹是否删除干净
find / -name mysql
结果如下:
/var/lib/mysql
/usr/local/mysql
/usr/lib/mysql
/usr/include/mysql
命令:
rm -fr /usr/lib/mysql
rm -fr /usr/include/mysql
注意:卸载后/var/lib/mysql中的数据及/etc/my.cnf不会删除,如果确定没用后就手工删除
rm -f /etc/my.cnf
rm -fr /var/lib/mysql
4.删除mysql用户及用户组
userdel mysql
groupdel mysql