Linux下安装MySql总结

安装

mysql的安装主要有3种方法,一种是源码安装,一种是RPM安装,一种是二进制文件安装(相当于Windows下的绿色安装),这里采用最后一种方式。

下载

进入mysql官网,然后按照图示找到指定地方,我们这里下载一个历史版本5.5,然后指定platform为Linux-Generic,拖到最下面去,下载.tar.gz格式的64位文件。

开始安装

不同于大部分教程,我这里安装到/home/mysql文件夹下,不要问为什么,习惯而已!

[Z software]# tar -zxvf mysql-5.5.48-linux2.6-x86_64.tar.gz(解压)
[Z software]# mv mysql-5.5.48-linux2.6-x86_64 /home/mysql(移动到目标位置)
[Z mysql]# cd /home/mysql
[Z mysql]# groupadd mysql(添加mysql用户组)
[Z mysql]# useradd -g mysql -r mysql(添加名为mysql的用户)
[Z mysql]# chown -R mysql ./(将当前目录拥有者设置为mysql)
[Z mysql]# ./scripts/mysql_install_db --user=mysql --basedir=/home/mysql --datadir=/home/mysql/data(安装默认数据库,自定义安装路径时需指定basedir和datadir)
[Z mysql]# chown -R root ./(将权限重新归还给root)
[Z mysql]# chown -R mysql data(但是data目录的权限还是给mysql用户)
[Z mysql]# cp ./support-files/my-medium.cnf /etc/my.cnf(复制配置文件)
[Z mysql]# cp ./support-files/mysql.server /etc/init.d/mysql(添加到系统服务)
[Z mysql]# chkconfig --add mysql(将服务设置为开机自启)
[Z mysql]# vi /etc/my.cnf(自定义安装目录后需要在mysqld下面手动增加basedir和datadir这2个参数,否则无法启动)
	[mysqld]
	basedir=/home/mysql
	datadir=/home/mysql/data
[Z mysql]# service mysql start(启动服务)
Starting MySQL..										   [  OK  ]

安装过程总结来说就是:解压,创建mysql用户组和用户,修改目录拥有者为mysql,安装默认数据库,复原目录拥有者,复制配置文件,配置成服务并设置开机自启,完毕。

补充说明:

  • 至于为何要添加一个名为mysql的用户,我没有去找原因,反正按照做就是了;
  • 如果是自定义安装路径(区别于默认路径/usr/local/mysql),在执行安装脚本时需指定basedir和datadir这2个参数;
  • 复制my.cnf时可以根据需要选择其它文件来复制;
  • mysql.server 文件里面也有basedir和datadir的设置,不过经过测试,即使是自定义安装路径一般也不需要手动设置;

启动与停止

由于已经设置了开启自己,一般情况下无需自行启动,但是这里还是写一下启动停止命令:

[Z ~]# service mysql status
[Z ~]# service mysql stop
[Z ~]# service mysql start

设置密码

第一次安装完毕默认是没有密码的(修改密码时一定要先记得启动服务):

./bin/mysqladmin -u root password 你的密码(第一次设置密码时)
./bin/mysqladmin -u root -p password 新密码(如果已经设置过密码)
Enter password: 【输入旧密码,回车即修改成功】

开启远程访问

默认情况下是不允许远程连接数据库的,需要做如下修改:

# 格式:grant 权限 on 数据库名.表名 用户@登录主机 identified by "用户密码";
grant all privileges on *.* to root@'%' identified by '你的密码';
flush privileges;

修改完之后应该是要重启才生效service mysql restart。如果依旧没有效果,往下看。

如果是较老版本的mysql,找到/etc/my.cnf里面的skip-networking,确定它是被注释的:

#skip-networking

在新版本中,找到bind-address确定它是被注释的:

# Instead of skip-networking the default is now to listen only on
# localhost which is more compatible and is not less secure.
#bind-address		   = 127.0.0.1

设置utf-8编码

修改/etc/my.cnf文件,分别在[client][mysqld][mysql]下增加如下5个设置:

[client]
default-character-set=utf8

[mysqld]
collation_server = utf8_general_ci
character_set_server = utf8
init_connect='SET NAMES utf8'

[mysql]
default-character-set=utf8

修改完记得重启mysql

忘记mysql密码

首先,必须要有操作系统的root权限(以下方法未亲自验证)。

# service mysql stop
# mysqld_safe --skip-grant-tables &(&表示在后台运行)
# mysql
mysql> use mysql;
mysql> update user set password=password("test123") where user='root';
mysql> flush privileges;
mysql> exit;

错误日志

默认日志没去找在哪,反正最好设置一下下面的这个,如果启动失败了,可以去日志查找错误原因,这个比较有效。

# vi /etc/my.cnf
[mysqld]
log=/var/log/mysqld_common.log
log-error=/var/log/mysqld_err.log

坑爹记录

我之前一直启动失败,卸载重装了好几次还是失败,后来才发现是my.cnf惹的祸,不知为何系统默认好像安装了mysql-libs之类的什么东西,而且也有/etc/my.cnf这个文件,恰巧看的那篇教程没有说要复制my.cnf这个文件,导致我一直用的是旧的my.cnf,里面的basedir和datadir都是错误的,我以为这个文件是在执行mysql_install_db之后自动复制到/etc下的,搞得我还一直在吐槽鼎鼎大名的mysql为何如何不友好,明明设置了basedir为何my.cnf里面的basedir还是错误的,我一直在尝试修改/etc/init.d/mysql里面的basedir和datadir,也修改了my.cnf里面的basedir,却偏偏忘了修改datadir,这才导致重装几遍都没成功,仅以此文记录坑爹史。

就是下面这篇坑爹文章害惨了我:
http://jingyan.baidu.com/article/a378c9609eb652b3282830fd.html

教训:卸载时除了删除mysql各类文件夹外,一定还要记得删除/etc/my.cnf文件!

卸载

这里只介绍二进制安装方式的卸载。

停止服务

[Z ~]# service mysql status
MySQL running (16784)									  [  OK  ]
[Z ~]# service mysql stop
Shutting down MySQL.									   [  OK  ]
[Z ~]# service mysql status
MySQL is not running									   [FAILED]

删除文件

分别使用whereis mysql 和 find / -name mysql查找系统中所有有关mysql的地方(貌似后者已经包括了前者,可以只采用find查找),然后依次删除对应文件夹即可,这里千万要谨慎操作,避免误删无关文件。

[Z ~]# whereis mysql
mysql: /usr/lib64/mysql /usr/local/bin/mysql /usr/share/mysql
[Z ~]# find / -name mysql
/usr/lib64/mysql
/usr/share/mysql
/usr/local/bin/mysql
/etc/rc.d/init.d/mysql
/var/lib/mysql
/var/lib/mysql/mysql
/home/mysql
/home/mysql/bin/mysql
/home/mysql/data/mysql
/home/mysql/include/mysql
[Z ~]# rm -rf /usr/lib64/mysql
[Z ~]# rm -rf /usr/share/mysql
[Z ~]# rm -rf /usr/local/bin/mysql
[Z ~]# rm -rf /etc/rc.d/init.d/mysql 
[Z ~]# rm -rf /var/lib/mysql/
[Z ~]# rm -rf /home/mysql

删除MySQL用户以及用户组(可选)

[ ~]# id mysql
[ ~]# userdel mysql

删除my.inf

rm -rf /etc/my.cnf

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
ava实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),可运行高分资源 Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现
C语言是一种广泛使用的编程语言,它具有高效、灵活、可移植性强等特点,被广泛应用于操作系统、嵌入式系统、数据库、编译器等领域的开发。C语言的基本语法包括变量、数据类型、运算符、控制结构(如if语句、循环语句等)、函数、指针等。下面详细介绍C语言的基本概念和语法。 1. 变量和数据类型 在C语言中,变量用于存储数据,数据类型用于定义变量的类型和范围。C语言支持多种数据类型,包括基本数据类型(如int、float、char等)和复合数据类型(如结构体、联合等)。 2. 运算符 C语言中常用的运算符包括算术运算符(如+、、、/等)、关系运算符(如==、!=、、=、<、<=等)、逻辑运算符(如&&、||、!等)。此外,还有位运算符(如&、|、^等)和指针运算符(如、等)。 3. 控制结构 C语言中常用的控制结构包括if语句、循环语句(如for、while等)和switch语句。通过这些控制结构,可以实现程序的分支、循环和多路选择等功能。 4. 函数 函数是C语言中用于封装代码的单元,可以实现代码的复用和模块化。C语言中定义函数使用关键字“void”或返回值类型(如int、float等),并通过“{”和“}”括起来的代码块来实现函数的功能。 5. 指针 指针是C语言中用于存储变量地址的变量。通过指针,可以实现对内存的间接访问和修改。C语言中定义指针使用星号()符号,指向数组、字符串和结构体等数据结构时,还需要注意数组名和字符串常量的特殊性质。 6. 数组和字符串 数组是C语言中用于存储同类型数据的结构,可以通过索引访问和修改数组中的元素。字符串是C语言中用于存储文本数据的特殊类型,通常以字符串常量的形式出现,用双引号("...")括起来,末尾自动添加'\0'字符。 7. 结构体和联合 结构体和联合是C语言中用于存储不同类型数据的复合数据类型。结构体由多个成员组成,每个成员可以是不同的数据类型;联合由多个变量组成,它们共用同一块内存空间。通过结构体和联合,可以实现数据的封装和抽象。 8. 文件操作 C语言中通过文件操作函数(如fopen、fclose、fread、fwrite等)实现对文件的读写操作。文件操作函数通常返回文件指针,用于表示打开的文件。通过文件指针,可以进行文件的定位、读写等操作。 总之,C语言是一种功能强大、灵活高效的编程语言,广泛应用于各种领域。掌握C语言的基本语法和数据结构,可以为编程学习和实践打下坚实的基础。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值