安装步骤:
inux平台mysql source安装的安装及配置步骤
1、下载MySQL的sourcecode
选择sourcecode下拉列表进入到如下页面:
点击Generic Linux (Architecture Independent), Compressed TAR Archive,进入
选择
进行下载
2、安装MySQL
解压mysql5 的安装包:
[root@niutian365 local]# tar –zxvf mysql-5.5.16.tar.gz
进入解压后的安装包
:[root@niutian365 local]# cd mysql-5.5.16
3、选择root用户进入,建立mysql用户组和用户名:
建立mysql用户组:groupadd mysql
建立mysql用户并将mysql用户加到mysql用户组中: useradd -g mysql mysql
4、创建/usr/mysql/mysql和/usr/mysql/data和/usr/mysql/log目录
mkdir /usr/mysql/mysql
mkdir /usr/mysql/data
cmake 编译sourcecode
cmake -DCMAKE_INSTALL_PREFIX=/mysql/mysql
-DMYSQL_DATADIR=/mysql/mysql/data
-DDEFAULT_CHARSET=utf8
-DDEFAULT_COLLATION=utf8_general_ci
-DWITH_INNOBASE_STORAGE_ENGINE=1
-DWITH_ARCHIVE_STORAGE_ENGINE=1
-DWITH_BLACKHOLE_STORAGE_ENGINE=1
-DWITH_FEDERATED_STORAGE_ENGINE=1
-DWITH_PARTITION_STORAGE_ENGINE=1
-DENABLED_LOCAL_INFILE=1
-DMYSQL_UNIX_ADDR=/mysql/mysql/data/mysql.sock
5、复制配置文件到/etc下
[root@niutian365 local]#vi /etc/my.cnf
修改
[mysqld]
basedir=/home/mysql/mysql
datadir=/home/mysql/data
socket=/var/lib/mysql/mysql.sock
和
[mysqld_safe]
log-error=/home/mysql/log/mysqld.log
pid-file=/home/mysql/log/mysqld.pid
6、修改文件的文件主:
chown –R mysql:mysql /home/mysql/log/
chown –R mysql:mysql /var/lib/mysql
运行[root@niutian365 local]#./usr/local/mysql/bin/mysql_install_db
在这一步中可能会发生错误,查看错误原因,如果是由于权限的问题则需要将父目录拥有者改成mysql:mysql,使用chown –R mysql:mysql XXX
7、运行mysql
进入mysql的bin目录,运行sh mysqld_safe
如果不能正常运行,可以查看log目录下的mysqld.log,查看错误信息,然后做出相应的修改。
8、将mysql注册为服务
将mysql源代码目录的support-files/mysql.server拷贝至/etc/init.d/下,重命名为mysqld
安装chkconfig: apt-get install chkconfig
运行chkconfig -add mysql注册服务
运行 mysql start开启服务
运行 mysql stop关闭服务
修改远程登录mysql权限,现在提供两种支持远程登录的方法:
1.改表法。其中在user表中的host那一列保存的是user允许的用户登录的位置信息,通过修改这一列的数据来修改mysql的远程登录,使用如下命令进入mysql,mysql –u root –p 输入密码(默认为空)第一次进入到数据库系统。
选择数据库:mysql> use mysql;
如下图所示执行sql命令:
由上图可以看到,mysql只允许127.0.0.1和localhost,以及localhost.localdomain的机器以root身份登录到mysql数据库中,下面我们做如下更改:
上面的error是有host是唯一属性导致的错误,可以不用理会,现在我们已经改好了mysql远程登录的配置,一定要主要通过如下命令是上述做的改动生效。
mysql> FLUSH PRIVILEGES;
好了现在可以在其他机器上进行远程登录mysql了。
2.授权法。
使用如下命令:
mysql> GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY '111111' WITH GRANT OPTION;是root用户在任意机器上以111111密码访问,上面的执行结果如下:
实际上,在user表中添加了一行,如上面标注部分。如果你想允许用户myuser从ip为192.168.1.3的主机连接到mysql服务器,并使用mypassword作为密码,执行如下语句:
GRANT ALL PRIVILEGES ON *.* TO 'myuser'@'192.168.1.3' IDENTIFIED BY 'mypassword' WITH GRANT OPTION;
Mysql修改密码:
UPDATE user SET password=password('111111') where user='root';
mysql> FLUSH privileges;
如下图:
请注意,此密码是经过hash后的密码,不能用原密码如mysql> update user set password = 111111 where user = 'root' ;这样是不正确的。
Mysql添加用户:
mysql> GRANT ALL PRIVILEGES ON *.* TO 'sphinx'@'%' IDENTIFIED BY '111111' WITH GRANT OPTION;
Query OK, 0 rows affected (0.00 sec)
mysql> FLUSH PRIVILEGES;
Query OK, 0 rows affected (0.00 sec)
以上命令是创建sphinx用户远程登录mysql,密码是111111。