Linux安装mysql数据库
执行命令:
service mysqld start
返回以下信息:
启动 MySQL: [确定]
数据库已经启动,跳过安装步骤。
反之,请安装数据库。
-
到mysql官网下载mysql编译好的二进制安装包,在下载页面Select Platform:选项选择linux-generic,然后把页面拉到底部,64位系统下载Linux - Generic (glibc 2.5) (x86, 64-bit),32位系统下载Linux - Generic (glibc 2.5) (x86, 32-bit)
-
解压32位安装包:
进入安装包所在目录,执行命令:tar mysql-5.6.17-linux-glibc2.5-i686.tar.gz -
复制解压后的mysql目录到系统的本地软件目录:
执行命令:cp mysql-5.6.17-linux-glibc2.5-i686 /usr/local/mysql -r
注意:目录结尾不要加/ -
添加系统mysql组和mysql用户:
执行命令:groupadd mysql和useradd -r -g mysql mysql -
安装数据库:
进入安装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客户端放到默认路径:
ln -s /usr/local/mysql/bin/mysql /usr/local/bin/mysql
注意:建议使用软链过去,不要直接包文件复制,便于系统安装多个版本的mysql
环境部署完毕,导入数据:
-
直接在linux中导入:
(1)导出数据库用mysqldump命令(注意mysql的安装路径,即此命令的路径):
导出数据和表结构:
mysqldump -u用户名 -p密码 数据库名 > 数据库名.sql
#/usr/local/mysql/bin/ mysqldump -uroot -p abc > abc.sql
敲回车后会提示输入密码
只导出表结构
mysqldump -u用户名 -p密码 -d 数据库名 > 数据库名.sql
#/usr/local/mysql/bin/ mysqldump -uroot -p -d abc > abc.sql
注:/usr/local/mysql/bin/ —> mysql的data目录
(2)导入数据库
选择数据库
mysql>use abc;
设置数据库编码
mysql>set names utf8;
导入数据(注意sql文件的路径)
mysql>source /home/abc/abc.sql; -
远程控制数据库,用客户端工具导入数据
安装了MySQL默认是拒绝远程连接的。
首先进入数据库,使用系统数据库mysql。
mysql -u root -p mysql #回车,然后输入则使用了系统数据库
接着对系统数据库的root账户设置远程访问的密码,与本地的root访问密码并不冲突。
grant all privileges on . to ‘root’@’%’ identified by ‘123456’ with grant option; #123456为你需要设置的密码
防火墙设置一下,不然3306端口还是无法访问。
#iptables -I INPUT -p tcp -m state --state NEW -m tcp --dport 3306 -j ACCEPT
设置完之后,查看一下是否能通过。
#iptables -L -n
如果想要限制访问。
#iptables -D INPUT -p tcp -m state --state NEW -m tcp --dport 3306 -j ACCEPT
OK,这样就可以远程访问了。