今天在自己linx服务器上安装了mysql数据库,现在我把安装步骤和遇到问题解决方法记录下来。
首先,我用命令将mysql的源码包下载下来,也可以在windows中下载好在 上传上去,为了规范和方便管理以后的软件,我先把目录切到/usr/local下,然后用命令 mkdir softwarePackage创建软件源码包文件夹。
--wget下载命令 + 下载地址将源码包下载到当前位置,也可以用 wget -P /保存位置 网址 来将下载的保存在指定的目录 如(
wget -P /usr/local/softwarePackage http://dev.mysql.com/get/Downloads/MySQL-5.6/mysql-5.6.33-linux-glibc2.5-x86_64.tar.gz
)
wget http://dev.mysql.com/get/Downloads/MySQL-5.6/mysql-5.6.33-linux-glibc2.5-x86_64.tar.gz
将源码包下载下来后,先在/usr/local下创建mysql文件夹
mkdir /usr/local/mysql/
接着切换到刚刚下载好 的mysql源码包文件下面将其解压到新创建好的mysql文件夹下。
命令格式:tar -zxvf 【压缩包文件名.tar.bz2】 -C 【路径】/
注释:解压.tar.bz2格式到指定的目录下
tar -zxvf mysql-5.6.33-linux-glibc2.5-x86_64.tar.gz -C /usr/local/mysql/
解压完后先添加用户组,为了方便管理以后用户的访问权限
#添加用户组
groupadd mysql
#添加用户mysql 到用户组mysql
useradd -g mysql mysql
进入安装mysql软件的目录执行脚本
[root@localhost mysql]# ./scripts/mysql_install_db --user=mysql
//copy到配置文件进行开机自启动
[root@localhost mysql]# cp support-files/mysql.server /etc/init.d/mysqld
//授权读写权限
[root@localhost mysql]# chmod 755 /etc/init.d/mysqld
//复制配置文件到etc下
[root@localhost mysql]# cp support-files/my-default.cnf /etc/my.cnf
也可以在安装时指定data的目录,否则默认用安装目录下的data目录,比如下面命令
./scripts/mysql_install_db --user=mysql --datadir=/usr/local/mysql/data
弄好后修改启动脚本指定安装目录和data目录
[root@localhost mysql]# vi /etc/init.d/mysqld
找到 basedir = 和 datadir =将安装目录和data目录填上去
basedir=/usr/local/mysql
datadir=/usr/local/mysql/data
修改完后就可以启动了,
[root@localhost mysql]# service mysqld start
这个时候我启动报了错误,提示一下错误
./bin/mysqld: error while loading shared libraries: libaio.so.1: cannot open shared object file:
这个是由于缺少了mysql所需要的libaio包,将其下载下来就行了,命令如下
sudo apt-get install libaio-dev
接着再次尝试启动服务,这时就可以启动成功了。
接着可以查看运行状态
service mysqld status
然后将mysql加入环境变量,编辑 /etc/profile,这样可以在任何地方用mysql命令了
打开profile文件后再最底层加入两行代码
export PATH=$PATH:/usr/local/mysql/mysql-5.6.33-linux-glibc2.5-x86_64/bin
export PATH
然后保存后执行$source /etc/profile命令让其立即生效
source /etc/profile
接着可以尝试连接mysql
[root@localhost mysql]# ./mysql/bin/mysql -uroot
登录成功后设置密码
./bin/mysqladmin -u root password '123456'
exit退出来,然后尝试直接用mysql命令进行登录,因为上面我们已经将环境变量添加进profile文件中去,可以在任何地方使用mysql命令, 再一次用密码进行登录
mysql -u root -p
登录上去后我们开始配置远程连接,让外部也能访问到mysql数据库
第一步创建用户来远程连接
GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY '123456' WITH GRANT OPTION;
/**GRANT ALL PRIVILEGES ON *.* TO '$username'@'%' IDENTIFIED BY '$password' WITH GRANT OPTION;*/
all privileges表示所有权限(增删改查权限),第一个*表示任何database,第二个表示database下的任何表,%表示所有ip地址都可以连接,
$username表示用户名,%表示所有的电脑都可以连接,也可以设置某个ip地址运行连接,$password表示密码
执行 flush privileges;命令立即生效
flush privileges;
接着重启mysql
service mysqld restart 然后就可以开始远程连接了