1、编译安装MySQL
①准备工作
卸载rpm方式安装的mysql-server、mysql
# rpm -qa | grep mysql
若存在,用rpm -e mysql-server mysql --nodeps 命令卸载
安装ncurses-devel与cmake包
# yum -y install ncurses-devel
# tar xf cmake-2.8.6.tar.gz -C /usr/src
# cd /usr/src/cmake-2.8.6
# ./configure && gmake && gmake install
2、源码编译及安装
# tar xf mysql-5.5.22.tar.gz -C /usr/src/
cmake 配置,编译及安装
# cd /usr/src/mysql-5.5.22/
# cmake -DCMAKE_INSTALL_PREFIX=/usr/local/mysql -DSYSCONFDIR=/etc -DDEFAULT_CHARSET=utf8 -DDEFAULT_COLLATION=utf8_general_ci -DWITH_EXTRA_CHARSETS=all && make && make install
增加程序用户mysql
# useradd -M -s /sbin/nologin mysql
mysql目录下:
bin目录为命令目录;data目录为数据目录;support-file目录提供了很多模板,比如启动脚本比如配置文件
3、安装后优化操作
修改mysql安装目录的属主与属组
更改属主为程序用户mysql,写数据都是由程序用户完成的,程序用户起一个socket进程监听端口
# chown -R mysql:root /usr/local/mysql
复制一个my.cnf配置文件的模板:
# /bin/cp /usr/local/mysql/support-files/my-medium.cnf /etc/my.cnf
/bin/cp强制覆盖
my.cnf配置文件相关介绍,在mysql解压路径support-files/下提供的模板
添加系统服务:
# /bin/cp /usr/local/mysql/support-files/mysql.server /etc/init.d/mysqld
给服务加X权限:
# chmod +x /etc/init.d/mysqld
将脚本加入开机自启动
# chkconfig mysqld --add
# chkconfig mysqld --list
添加MySQL命令执行的路径到PATH环境变量(让环境变量找到命令)
# ln -s /usr/local/mysql/bin/* /usr/local/bin/
或
# echo "export PATH=$PATH:/usr/local/mysql/bin" >>/etc/profile
# . /etc/profile
# echo $PATH
检验:which mysql
库的本质就是子目录,表的本质是文件
执行mysql_install_db脚本初始化数据库(使数据库目录中具备运行必备的数据,有启动数据库的能力)
# /usr/local/mysql/scripts/mysql_install_db --user=mysql --basedir=/usr/local/mysql/ --datadir=/usr/local/mysql/data/
--user=mysql //指定用户身份
--basedir=/usr/local/mysql/ //指定安装目录(产品目录)
--datadir=/usr/local/mysql/data //指定数据目录(指定是哪儿,数据就放在哪儿)
通常工作中,并不是放在他的安装目下,而是放在根下/data挂在非系统盘上(单独挂盘),非系统盘单独再做一个raid5保障安全
启动mysql服务,并查看运行状态
# /etc/init.d/mysqld start
# netstat -antup | grep :3306
连接并登陆到mysql操作环境:mysql 或 mysql -uroot -p
-u 指定用户名
-p指定密码(不写密码默认没密码)
-h指定主机(不写默认是本地)
-P指定端口(不写默认是3306)
退出登录
quit、exit或ctrl+D
设置MySQL的密码:mysqladmin命令
mysqladmin -uroot password '123456'(不指定账户默认是root)
mysql 的账号由两部分组成,账户名@登录的IP
查看账号:select user,host from mysql.user;
密码设置成功以后登录mysql:
mysql -uroot -p 交互式输入密码
mysql -uroot -p123456 免交互