Linux系统要搭建好GCC的编译环境。
使用CentOS的话可以:
yum -y install gcc
yum -y install gcc-c++
创建安装目录
mkdir /data/mysql
cd mysql-5.5.2-m2/
./configure
--prefix=/data/mysql/ --enable-assembler
--with-extra-charsets=complex --enable-thread-safe-client
--with-big-tables --with-readline --with-ssl --with-embedded-server
--enable-local-infile
--with-plugins=partition,innobase,myisammrg
(出现configure: error: No curses/termcap
library
found错误,加上--with-named-curses-libs=/usr/lib/libncursesw.so.5参数可以解决,或者再用yum安装ncurses-devel也可)
make
make install
在make
install的后半过程,有一段比较长时间的停顿,不要担心死掉了,实际上它还活着,耐心的等待,最终会安装完毕。
3、如果还没有mysql用户,创建:
groupadd mysql
useradd mysql -g
mysql
4、修改目录权限:
chmod +w
/data/mysql
chown -R mysql:mysql
/data/mysql
5、创建数据目录(mysql5.5默认已经没有data目录了)
mkdir
/data/mysql/data
6、从源安装目录拷贝文件
cp
support-files/my-medium.cnf /etc/my.cnf
//拷贝my-medium.cnf文件到/etc/目录下并重命名为my.cnf
在[mysqld]段添加
basedir=/data/mysql
datadir=/data/mysql/data
cp
support-files/mysql.server /etc/init.d/mysqld
chmod 755
/etc/init.d/mysqld
编译/etc/init.d/mysqld
把basedir=编辑成basedir=/data/mysql
把datadir=编辑成datadir=/data/mysql/data
chkconfig --add
mysqld
chkconfig --level 3
mysqld on
7、初始化数据库:
/data/mysql/bin/mysql_install_db --basedir=/data/mysql
--datadir=/data/mysql/data --user=mysql
8、安装完成。初始密码都为空。
service mysqld
start
mysql -uroot -p
直接回车进入mysql
查看mysql数据库下的user表。密码为空。
9、添加环境变量
vi /root/.bash_profile 添加
红色部分 :/data/mysql/bin
# .bash_profile
# Get the aliases and functions
if [ -f ~/.bashrc ]; then
.
~/.bashrc
fi
# User specific environment and startup programs
PATH=$PATH:$HOME/bin:/data/mysql/bin
export PATH
unset USERNAME
###################################
修改密码的方式:
/data/mysql/bin/mysqladmin -u root password '123456'
其中引号内的
123456
是要设置的root密码
第二种更改密码的方式:
# mysql -u root mysql
mysql>use mysql;
mysql>desc user;
mysql> GRANT ALL PRIVILEGES ON *.* TO root@"%" IDENTIFIED BY
"root"; //为root添加远程连接的能力。
mysql>update user set Password =
password('xxxxxx') where User='root';
mysql>select Host,User,Password from user where
User='root';
mysql>flush privileges;
mysql>exit
注:红色password为mysql的加密方式。在user表中保存的密码非明文,而是以*开头的一串加密的字符串,切记直接将明文密码直接update到数据库。否则,登录会提示ERROR
1045 (28000): Access denied for user 'root'@'localhost' (using
password: YES)。