一、下载mysql压缩包
安装环境:centos 7 x64
3、复制配置文件到 /etc/my.cnf 并修改配置
[root@localhost mysql]# cp -a ./support-files/my-default.cnf /etc/my.cnf
[root@localhost mysql]# vi /etc/my.cnf
端口号默认3306,根据实际情况修改
#数据库安装路径
basedir = /usr/local/mysql
#数据库数据data路径
datadir = /usr/local/mysql/data
#数据库编码
character_set_server=utf8
#socket文件路径(mysql服务启动后自动生成)
socket = /tmp/mysql.sock
#可以在安装目录下新建一个log目录:用来存放错误日志
#log-error=/usr/local/mysqlService/mysql/log/mysqld.log
4. 将MySQL的服务脚本放到系统服务中(完成此步骤后可以在任意目录启动mysql服务)
#mysql.server这个文件被重命名为AAA,则启动服务命令为service AAA start {stop ,restart}
[root@localhost mysql]# cp -a ./support-files/mysql.server /etc/init.d/mysqld
可以创建一个软连接方便mysql文件的管理,这个看个人意愿
[root@localhost mysql]# ln -s /usr/local/mysql/ /usr/bin/
-------------------------------------------------------------------------------------------------
附:如果需要自启mysql服务则运行下面步骤3之后重启即可
1、cp /usr/local/MySQL/support-files/mysql.server /etc/init.d/mysqld 将服务文件拷贝到init.d下,并重命名为mysqld
2、chmod +x /etc/init.d/mysqld 赋予可执行权限
3、chkconfig --add mysqld 添加服务
4、chkconfig --list 显示服务列表
如果看到mysql的服务,并且3,4,5都是on的话则成功,如果是off,则键入
chkconfig --level 345 mysql on
5、reboot重启电脑
6、netstat -na | grep 3306,如果看到有监听说明服务启动了
---------------------------------------------------------------------------------------------------
5 添加系统环境变量:(添加之后可以在任何目录启动mysql工具)
[root@localhost mysql]# vim /etc/profile
在最下面添加环境环境变量:(PATH中第一次写入的export PATH=$PATH:$MYSQL_HOME/bin无法识别,所以改为绝对路径,原因再补)
MYSQL_HOME=/usr/local/mysql
export PATH=$PATH:/usr/local/mysql/bin
保存退出后使环境变量立即生效
[root@localhost mysql]# source /etc/profile
6 查看root用户初始密码,登录
Mysql 5.6及以后版本出处于安全考虑,root密码不为空。所以在MySQL的安装过程中,会生成一个随机密码,放置在/root/.mysql_secret中。
[root@localhost mysql]# cat /root/.mysql_secret
# Password set for user 'root@localhost' at 2017-04-24 18:36:15
skGb2kpqZ=hf
#skGb2kpqZ=hf就是默认密码
登录mysql客户端:
[root@localhost mysql]# mysql -u root -p (刷新过环境变量)
[root@localhost mysql]# ./bin/mysql -u root -p (未刷新环境变量)
输入上面的密码登录
7.修改root用户密码:
mysql> set password for root@localhost = password('123');
mysql> quit;
----------------------------------------------------------------------------------
附:修改密码:
方法1: 用SET PASSWORD命令
首先登录MySQL。
格式:mysql> set password for 用户名@localhost = password('新密码');
例子:mysql> set password for root@localhost = password('123');
方法2:用mysqladmin
格式:mysqladmin -u用户名 -p旧密码 password 新密码
例子:mysqladmin -uroot -p123456 password 123
方法3:用UPDATE直接编辑user表
首先登录MySQL。
mysql> use mysql;
mysql> update user set password=password('123') where user='root' and host='localhost';
mysql> flush privileges;
------------------------------------------------------------------------------------
8. 使用其他工具访问mysql
Mysql数据库跟其他数据库不一样,需要设置权限可以控制哪台机器能访问数据库,能访问哪些表。
设置权限:mysql> grant all privileges on *.* to root@'%' identified by '123456' with grant option;
刷新权限:mysql> FLUSH PRIVILEGES;
(附:查看监听状态:[root@localhost ~]# netstat -an | grep 3306)
安装过程可能碰到的问题:
1、报错mysql: [Warning] World-writable config file '/etc/my.cnf' is ignored.
原因:my.cnf 配置文件设置为777。权限全局可写,任何用户都可以更改。mysql担心这种文件被其他用户恶意修改,所以忽略掉这个配置文件。导致无法启动或关闭mysql
解决:将my.cnf 文件权限修改为644
2、ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: NO)
原因:上面有提到,root用户默认密码没有更改
解决:查看默认密码后登陆mysql修改密码
3、安装过程中创建了mysql用户和组,在切换到mysql用户时报出警告
原因:为在linux下每次通过useradd创建新的用户时,都会将所有的配置文件从/etc/skel复制到新用户的主目录下,一般默认在home下面的新用户主目录,而关于/etc/skel这个目录,是主要被useradd所用到。所以命令行会变成-bash-3.2$主要原因可能是用户主目录下的配置文件丢失
解决:切换用户到root,进入home目录创建mysql文件夹并运行复制/etc/skel
所以在创建用户之前最好现在home下建好文件夹或者使用adduser 区分adduser和useradd的区别
[root@localhost home]# cp -a /etc/skel/. /home/mysql
4、登陆mysql报错:ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/tmp/mysql.sock' (2)
原因:无法连接'/tmp/mysql.sock' ,mysql服务还没有启动,没有创建.sock文件,所以文件不存在
解决:启动mysql服务
[mysql@localhost ~]$ service mysqld start